Dubbo使用
使用方式
父工程,管理依賴版本
配置dubbo版本
<dubbo.version>2.5.3</dubbo.version> <zookeeper.version>3.4.7</zookeeper.version> <zkclient.version>0.1</zkclient.version>配置引用
<!-- dubbo相關 --> <dependency><groupId>com.alibaba</groupId><artifactId>dubbo</artifactId><version>${dubbo.version}</version> </dependency> <dependency><groupId>org.apache.zookeeper</groupId><artifactId>zookeeper</artifactId><version>${zookeeper.version}</version> </dependency> <dependency><groupId>com.github.sgroschupf</groupId><artifactId>zkclient</artifactId><version>${zkclient.version}</version> </dependency>生產者,Service
消費者,Web
都是獨立的工程
都需要添加對Dubbo相關jar包的引用
Service
添加引用
<!-- dubbo相關的jar包 --> <dependency><groupId>com.alibaba</groupId><artifactId>dubbo</artifactId><exclusions><exclusion><artifactId>spring</artifactId><groupId>org.springframework</groupId></exclusion><exclusion><artifactId>netty</artifactId><groupId>org.jboss.netty</groupId></exclusion></exclusions> </dependency> <dependency><groupId>org.apache.zookeeper</groupId><artifactId>zookeeper</artifactId> </dependency> <dependency><groupId>com.github.sgroschupf</groupId><artifactId>zkclient</artifactId> </dependency>注意
由于Maven依賴傳遞
引入dubbo會把dubbo的相關依賴引入
需要排除dubbo依賴的Spring、netty
否則,可能會發生版本沖突的問題
Web同理,配置一樣
Interface
Service、Web
都需要添加對接口的引用
必須保證接口的一致,才可以實現服務調用
Service引用接口
Pom.xml <dependency><groupId>com.taotao</groupId><artifactId>taotao-manager-interface</artifactId><version>0.0.1-SNAPSHOT</version> </dependency>Web同理,配置一樣
發布服務
Service發布服務
applicationContext-service.xml
添加dubbo標簽、約束
xmlns:dubbo=http://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd暴露服務
<!-- 發布dubbo服務 --> <!-- 提供方應用信息,用于計算依賴關系 --> <dubbo:application name="taotao-manager" /> <!-- 注冊中心的地址 --> <dubbo:registry protocol="zookeeper" address="192.168.25.167:2181" /> <!-- 用dubbo協議在20880端口暴露服務 --> <dubbo:protocol name="dubbo" port="20880" /> <!-- 聲明需要暴露的服務接口 --> <dubbo:service interface="com.taotao.service.ItemService" ref="itemServiceImpl" timeout="300"/>調用服務
Web調用服務
springmvc.xml
同理,添加dubbo標簽、約束
調用服務
<!-- 引用dubbo服務 --> <dubbo:application name="taotao-manager-web"/> <dubbo:registry protocol="zookeeper" address="192.168.25.167:2181"/> <dubbo:reference interface="com.taotao.service.ItemService" id="itemService" />注意
配置在springmvc.xml
或者添加一個配置文件,掃描到Spring容器
調用服務,需要從容器中獲取服務
所以,需要將服務注冊到容器中
Spring MVC前端控制器
會初始化一個Spring MVC容器
將服務通過id,注冊到Spring MVC容器
在Controller中,通過注解直接可以引用
總結
- 上一篇: Dubbo服务发布调用实现
- 下一篇: Dubbo设置超时时间