国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁技術文章
文章詳情頁

SpringBoot整合Dubbo框架,實現RPC服務遠程調用

瀏覽:35日期:2023-03-07 18:46:30
目錄一、Dubbo框架簡介 1、框架依賴二、與SpringBoot2.0整合 1、核心依賴2、項目結構說明3、核心配置三、演示案例 1、服務遠程調用2、接口超時配置3、接口多版本配置四、源代碼地址 一、Dubbo框架簡介 1、框架依賴

SpringBoot整合Dubbo框架,實現RPC服務遠程調用

圖例說明:1)圖中小方塊 Protocol, Cluster, Proxy, Service, Container, Registry, Monitor 代表層或模塊,藍色的表示與業務有交互,綠色的表示只對 Dubbo 內部交互。2)圖中背景方塊 Consumer, Provider, Registry, Monitor 代表部署邏輯拓撲節點。3)圖中藍色虛線為初始化時調用,紅色虛線為運行時異步調用,紅色實線為運行時同步調用。4)圖中只包含 RPC 的層,不包含 Remoting 的層,Remoting 整體都隱含在 Protocol 中。

2、核心角色說明

1)Provider 暴露服務的服務提供方2)Consumer 調用遠程服務的服務消費方(負載均衡)3)Registry 服務注冊與發現的注冊中心(監控、心跳、踢出、重入)4)Monitor 服務消費者和提供者在內存中累計調用次數和調用時間,主動定時每分鐘發送一次統計數據到監控中心。5)Container 服務運行容器:遠程調用、序列化

二、與SpringBoot2.0整合 1、核心依賴

<!-- 這里包含了Zookeeper依賴和Dubbo依賴 --><dependency> <groupId>com.alibaba.boot</groupId> <artifactId>dubbo-spring-boot-starter</artifactId> <version>0.2.0</version></dependency>2、項目結構說明

SpringBoot整合Dubbo框架,實現RPC服務遠程調用

結構說明

dubbo-consume:服務消費方dubbo-provider:服務提供方dubbo-common:公共代碼塊,Dubbo接口,實體類3、核心配置

1)提供方配置

server: tomcat: uri-encoding: UTF-8 max-threads: 1000 min-spare-threads: 30 port: 7007 connection-timeout: 5000msspring: application: name: block-dubbo-provider# Dubbo 配置文件dubbo: application: name: block-dubbo-provider registry: address: 127.0.0.1:2181 protocol: zookeeper protocol: name: dubbo port: 20880 scan: base-packages: com.boot.consume

2) 消費方配置

server: tomcat: uri-encoding: UTF-8 max-threads: 1000 min-spare-threads: 30 port: 7008 connection-timeout: 5000msspring: application: name: block-dubbo-consume# Dubbo 配置文件dubbo: application: name: block-dubbo-consume registry: address: 127.0.0.1:2181 protocol: zookeeper三、演示案例 1、服務遠程調用

1)提供方服務接口

注意這里的注解 com.alibaba.dubbo.config.annotation.Service

@Service@Componentpublic class DubboServiceImpl implements DubboService { private static Logger LOGGER = LoggerFactory.getLogger(DubboServiceImpl.class) ; @Override public String getInfo(String param) {LOGGER.info('字符參數:{}',param);return '[Hello,Cicada]'; } @Override public UserEntity getUserInfo(UserEntity userEntity) {LOGGER.info('實體類參數:{}',userEntity);return userEntity; }}

2)消費方接口

注意這里注解 com.alibaba.dubbo.config.annotation.Reference org.springframework.stereotype.Service

@Servicepublic class ConsumeService implements DubboService { @Reference private DubboService dubboService ; @Override public String getInfo(String param) {return dubboService.getInfo(param); } @Override public UserEntity getUserInfo(UserEntity userEntity) {return dubboService.getUserInfo(userEntity); }}2、接口超時配置

該配置可以在服務提供方配置,也可以在服務消費方配置,這里演示在提供方的配置。注解:timeout

1)服務接口注解

@Service(timeout = 2000)@Componentpublic class DubboServiceImpl implements DubboService {}

2)消費方調用

@Override public String timeOut(Integer time) { return dubboService.timeOut(time); }

3)測試接口

服務超時拋出異常

com.alibaba.dubbo.remoting.TimeoutException3、接口多版本配置

1)服務提供方

相同接口提供兩個版本實現。注解:version。版本一:

@Service(version = '1.0.0')@Componentpublic class VersionOneImpl implements VersionService { @Override public String getVersion() {return '{當前版本:1.0.0}'; }}

版本二:

@Service(version = '2.0.0')@Componentpublic class VersionTwoImpl implements VersionService { @Override public String getVersion() {return '{當前版本:2.0.0}'; }}

2)消費方調用

通過@Reference(version)注解,將指向不同版本的接口實現。

@Servicepublic class VersionServiceImpl implements VersionService { @Reference(version = '1.0.0') private VersionService versionService1 ; @Reference(version = '2.0.0') private VersionService versionService2 ; @Override public String getVersion() {return versionService1.getVersion(); } public String version2 (){return versionService2.getVersion() ; }}

以上案例都是參照Dubbo官網的流程編寫的,Dubbo許多強大功能都可以參考官網一步步的配置。

四、源代碼地址

GitHub地址:知了一笑https://github.com/cicadasmile/middle-ware-parent

以上就是SpringBoot整合Dubbo框架,實現RPC服務遠程調用的詳細內容,更多關于SpringBoot整合Dubbo框架的資料請關注好吧啦網其它相關文章!

標簽: Spring
主站蜘蛛池模板: 尚义县| 永川市| 富川| 固安县| 石楼县| 和静县| 旬阳县| 宜阳县| 睢宁县| 涟源市| 靖宇县| 甘孜县| 正宁县| 麦盖提县| 灵台县| 安达市| 格尔木市| 汾西县| 新宾| 施甸县| 巴中市| 台山市| 萨迦县| 罗定市| 鄱阳县| 革吉县| 鱼台县| 颍上县| 吉首市| 古交市| 宣汉县| 锡林郭勒盟| 安庆市| 隆子县| 剑河县| 体育| 游戏| 井陉县| 长顺县| 桂林市| 杭州市|