dubbo 2.7 spring-boot starter 多註冊中心寫法

踩了太多坑,官網中文參考地址:http://dubbo.apache.org/zh-cn/index.html

話不多說,直接懟代碼

dubbo 2.7.x 的 boot starter寫法如下

依賴:

<dubbo.version>2.7.1</dubbo.version>

<!-- —————————————————— dubbo-starter BEGIN —————————————————————————— -->
<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-lang3</artifactId>
</dependency>
<dependency>
    <groupId>org.apache.dubbo</groupId>
    <artifactId>dubbo</artifactId>
    <version>${dubbo.version}</version>
</dependency>
<dependency>
    <groupId>org.apache.dubbo</groupId>
    <artifactId>dubbo-dependencies-zookeeper</artifactId>
    <version>${dubbo.version}</version>
    <type>pom</type>
</dependency>
<!-- —————————————————— dubbo-starter END —————————————————————————— -->

 

服務privider:

---------------------- provider ----------------------
 provider-yaml:
    dubbo:
    #  registry: # 單註冊中心,注意屬性級別:dubbo.registry,如果有@Service(registry = {"registry1","registry2","registry3"}),則刪除
    #    register: false # true(默認), false:表示服務不註冊到註冊中心(只訂閱,直連服務正常),且dubbo-admin不顯示
    #    address: zookeeper://127.0.0.1:2181
      registries: # 多註冊中心,注意屬性級別:dubbo.registries, 不同的方法可以用@Service(registry = {"registry2"}),指定不同的註冊中心
        provider1:
          register: true #默認,false:表示服務不註冊到註冊中心
          address: zookeeper://a.a.a.a:2181
        provider2:
          address: zookeeper://b.b.b.b:2181
        provider3:
          address: zookeeper://c.c.c.c:2181
      application:
        name: myProvider
    #    qos-enable: true # 默認值 true, 是否允許在線運維, 配置和查詢服務
    #    qos-port: 22222 # 默認值2222
    #    qos-accept-foreign-ip: false # 默認false , 不允許遠程訪問 telnet
      scan:
        base-packages: com.cmb.service.dubbo
      protocol:
        name: dubbo
        port: 28080
      provider:
        retries: 0        # 服務提供者無需重試
        timeout: 6000     # 默認只有1s

 provider-bean:
    bean1註解:
        @Service(group = "project1", version = "1.0.0", registry = {"provider1", "provider3"}
        public class DubboPrintServiceImpl implements DubboPrintService{...}
    bean2註解:
        @Service(group = "project2", version = "2.0.0", registry = {"provider3"})
        public class DubboPrintService2Impl implements DubboPrintService{...}

---------------------- provider ----------------------

消費者 comsumer:

---------------------- consumer ----------------------
 consumer-yaml:
    dubbo:
    #  registry: # 單註冊中心,注意屬性級別:dubbo.registry
    #    register: false # true(默認), false:表示服務不註冊到註冊中心(只訂閱,直連服務正常),且dubbo-admin不顯示
    #    address: zookeeper://127.0.0.1:2181
      registries: # 多註冊中心
        consumer1:
          register: true #默認,false:表示服務不註冊到註冊中心
          address: zookeeper://a.a.a.a:2181
        consumer2:
          address: zookeeper://b.b.b.b:2181
        consumer3:
          address: zookeeper://c.c.c.c:2181
      application:
        name: myConsumer
      scan:
        base-packages: com.cmb.controller
      consumer:
        timeout: 3000
        check: true   # 服務啓動時候檢查是否可用
        retries: 2    # 服務重試次數
 
 consumer-bean:
    下面的Bean注入後,直接使用
    @Reference(group = "project1", version = "1.0.0", registry = {"consumer1", "consumer3"})
    private DubboPrintService printService1;

    @Reference(group = "project2", version = "2.0.0", registry = {"consumer2"})
    private DubboPrintService printService2;

---------------------- consumer ----------------------

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章