javascript
SpringBoot2.0 整合 Dubbo框架 ,实现RPC服务远程调用
一、Dubbo框架簡(jiǎn)介
1、框架依賴
圖例說(shuō)明:
1)圖中小方塊 Protocol, Cluster, Proxy, Service, Container, Registry, Monitor 代表層或模塊,藍(lán)色的表示與業(yè)務(wù)有交互,綠色的表示只對(duì) Dubbo 內(nèi)部交互。
2)圖中背景方塊 Consumer, Provider, Registry, Monitor 代表部署邏輯拓?fù)涔?jié)點(diǎn)。
3)圖中藍(lán)色虛線為初始化時(shí)調(diào)用,紅色虛線為運(yùn)行時(shí)異步調(diào)用,紅色實(shí)線為運(yùn)行時(shí)同步調(diào)用。
4)圖中只包含 RPC 的層,不包含 Remoting 的層,Remoting 整體都隱含在 Protocol 中。
2、核心角色說(shuō)明
1)Provider 暴露服務(wù)的服務(wù)提供方
2)Consumer 調(diào)用遠(yuǎn)程服務(wù)的服務(wù)消費(fèi)方(負(fù)載均衡)
3)Registry 服務(wù)注冊(cè)與發(fā)現(xiàn)的注冊(cè)中心(監(jiān)控、心跳、踢出、重入)
4)Monitor 服務(wù)消費(fèi)者和提供者在內(nèi)存中累計(jì)調(diào)用次數(shù)和調(diào)用時(shí)間,主動(dòng)定時(shí)每分鐘發(fā)送一次統(tǒng)計(jì)數(shù)據(jù)到監(jiān)控中心。
5)Container 服務(wù)運(yùn)行容器:遠(yuǎn)程調(diào)用、序列化
二、與SpringBoot2.0整合
1、核心依賴
<!-- 這里包含了Zookeeper依賴和Dubbo依賴 --> <dependency><groupId>com.alibaba.boot</groupId><artifactId>dubbo-spring-boot-starter</artifactId><version>0.2.0</version> </dependency>2、項(xiàng)目結(jié)構(gòu)說(shuō)明
結(jié)構(gòu)說(shuō)明
3、核心配置
1)提供方配置
server:tomcat:uri-encoding: UTF-8max-threads: 1000min-spare-threads: 30port: 7007connection-timeout: 5000ms spring:application:name: block-dubbo-provider # Dubbo 配置文件 dubbo:application:name: block-dubbo-providerregistry:address: 127.0.0.1:2181protocol: zookeeperprotocol:name: dubboport: 20880scan:base-packages: com.boot.consume2)消費(fèi)方配置
server:tomcat:uri-encoding: UTF-8max-threads: 1000min-spare-threads: 30port: 7008connection-timeout: 5000msspring:application:name: block-dubbo-consume # Dubbo 配置文件 dubbo:application:name: block-dubbo-consumeregistry:address: 127.0.0.1:2181protocol: zookeeper三、演示案例
1、服務(wù)遠(yuǎn)程調(diào)用
1)提供方服務(wù)接口
- 注意這里的注解
- com.alibaba.dubbo.config.annotation.Service
2)消費(fèi)方接口
- 注意這里注解
- com.alibaba.dubbo.config.annotation.Reference
- org.springframework.stereotype.Service
2、接口超時(shí)配置
該配置可以在服務(wù)提供方配置,也可以在服務(wù)消費(fèi)方配置,這里演示在提供方的配置。
注解:timeout
1)服務(wù)接口注解
2)消費(fèi)方調(diào)用
@Overridepublic String timeOut(Integer time) {return dubboService.timeOut(time);}3)測(cè)試接口
服務(wù)超時(shí)拋出異常
3、接口多版本配置
1)服務(wù)提供方
相同接口提供兩個(gè)版本實(shí)現(xiàn)。注解:version。
版本一:
版本二:
@Service(version = "2.0.0") @Component public class VersionTwoImpl implements VersionService {@Overridepublic String getVersion() {return "{當(dāng)前版本:2.0.0}";} }2)消費(fèi)方調(diào)用
通過(guò)@Reference(version)注解,將指向不同版本的接口實(shí)現(xiàn)。
以上案例都是參照Dubbo官網(wǎng)的流程編寫(xiě)的,Dubbo許多強(qiáng)大功能都可以參考官網(wǎng)一步步的配置。
四、源代碼地址
GitHub地址:知了一笑 https://github.com/cicadasmile/middle-ware-parent 碼云地址:知了一笑 https://gitee.com/cicadasmile/middle-ware-parent
總結(jié)
以上是生活随笔為你收集整理的SpringBoot2.0 整合 Dubbo框架 ,实现RPC服务远程调用的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: TopHQBooks – PDF 搜索引
- 下一篇: » Markdown/reST 编辑器