spring整合dubbo

之前跨系統訪問是直接http、webservice等,近期有能使用dubbo的應用場景,特來記一下git

本次會使用zookeeper來當註冊中心github

首先引入dubbo的依賴web

 1         <dependency>
 2             <groupId>com.alibaba</groupId>
 3             <artifactId>dubbo</artifactId>
 4             <version>2.5.3</version>
 5             <exclusions>
 6                 <exclusion>
 7                     <artifactId>spring</artifactId>
 8                     <groupId>org.springframework</groupId>
 9                 </exclusion>
10             </exclusions>
11         </dependency>
12 
13         <dependency>
14             <groupId>org.apache.zookeeper</groupId>
15             <artifactId>zookeeper</artifactId>
16             <version>3.4.6</version>
17             <exclusions>
18                 <exclusion>
19                     <artifactId>netty</artifactId>
20                     <groupId>io.netty</groupId>
21                 </exclusion>
22             </exclusions>
23         </dependency>
24 
25         <dependency>
26             <groupId>com.github.sgroschupf</groupId>
27             <artifactId>zkclient</artifactId>
28             <version>0.1</version>
29             <exclusions>
30                 <exclusion>
31                     <artifactId>netty</artifactId>
32                     <groupId>io.netty</groupId>
33                 </exclusion>
34             </exclusions>
35         </dependency>

 

把要準備向外部暴露的服務打包成jar(這裏是接口喲,沒有實現類哦,實現類是由具體暴露接口的某個系統實現),若是系統架構是直接導入包,也能夠吧services的jar拷貝到lib下面也是行,就是比較麻煩並且一有改動就須要重新打包替換spring

暴露接口的系統引入jar,並實現接口apache

而後配置暴露服務器的名稱信息:服務器

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
            http://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd">
    <!-- 提供方應用名稱信息,這個至關於起一個名字,咱們dubbo管理頁面比較清晰是哪一個應用暴露出來的 -->
    <dubbo:application name="supply-statisticsService"></dubbo:application>
    <!-- 使用zookeeper註冊中心暴露服務地址 -->
    <dubbo:registry  address="zookeeper://127.0.0.1:2181" check="false" subscribe="false" register=""></dubbo:registry>

    <!-- 要暴露的服務接口 這裏的接口實現確定是要spring管理的喲 -->
    <dubbo:service  interface="接口全限定名稱(com.....)" ref="statisticsInquiryPriceOrderService" />
    <dubbo:service  interface="接口全限定名稱(com.....)" ref="statisticsOrderService"/>
</beans>

 使用暴露接口的系統架構

引入jarapp

配置文件ui

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
            http://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd">
    <!-- 提供方應用名稱信息,這個至關於起一個名字,咱們dubbo管理頁面比較清晰是哪一個應用暴露出來的 -->
    <dubbo:application name="supply-statisticsService"></dubbo:application>
    <!-- 使用zookeeper註冊中心暴露服務地址 -->
    <dubbo:registry address="zookeeper://127.0.0.1:2181" check="false"></dubbo:registry>
    
    <!-- 要引用的服務 -->
    <dubbo:reference interface="接口的全限定名稱(com.....)" id="statisticsInquiryPriceOrderService"></dubbo:reference>
    <dubbo:reference interface="接口的全限定名稱(com.....)" id="statisticsOrderService"></dubbo:reference>
</beans>

須要使用的contcontroller直接和spring的依賴注入同樣:spa

調用

這樣發現使用http訪問,webservice是否是清爽的不少呢,若有什麼不對的地方還望指正,以避免誤人子弟,謝謝!

相關文章
相關標籤/搜索