91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

SpringBoot2.0整合Dubbo框架怎么實現RPC服務遠程調用

發布時間:2021-07-08 13:39:24 來源:億速云 閱讀:135 作者:小新 欄目:編程語言

小編給大家分享一下SpringBoot2.0整合Dubbo框架怎么實現RPC服務遠程調用,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

一、Dubbo框架簡介

1、框架依賴

SpringBoot2.0整合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、項目結構說明

SpringBoot2.0整合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: 5000ms
spring:
 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: 5000ms

spring:
 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
@Component
public 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.Referenceorg.springframework.stereotype.Service

@Service
public 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)
@Component
public class DubboServiceImpl implements DubboService {
}

2)消費方調用

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

3)測試接口

服務超時拋出異常

com.alibaba.dubbo.remoting.TimeoutException

3、接口多版本配置

1)服務提供方

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

版本一:

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

版本二:

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

2)消費方調用

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

@Service
public 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
碼云地址:知了一笑
https://gitee.com/cicadasmile/middle-ware-parent

SpringBoot2.0整合Dubbo框架怎么實現RPC服務遠程調用

以上是“SpringBoot2.0整合Dubbo框架怎么實現RPC服務遠程調用”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

浠水县| 桑植县| 阿勒泰市| 宜丰县| 陆丰市| 韩城市| 平邑县| 巴林左旗| 保亭| 昌乐县| 都安| 防城港市| 桦甸市| 华宁县| 宝坻区| 孟州市| 中卫市| 沿河| 北宁市| 喜德县| 迭部县| 海门市| 昂仁县| 车致| 阜新| 达尔| 年辖:市辖区| 丹凤县| 长顺县| 黑水县| 东平县| 休宁县| 奉化市| 英吉沙县| 哈密市| 云阳县| 西平县| 安泽县| 泸水县| 蓬莱市| 泸西县|