记录springBoot+dubbo多注册中心配置(非XML)

由于最近公司的工程都是springBoot了,接口基本上都是feign,突然要与外部写一个dubbo接口;

然后发现springBoot可以用注解来注册与消费dubbo服务,比以前那种xml配置的方式简洁了许多;但是在配置多个注册中心的时候碰到一些问题,在此简单记录一下;

1、dubbo版本(dubbo-2.7.3)

引用包:
<dependency>

<groupId>org.apache.dubbo</groupId>

<artifactId>dubbo-spring-boot-starter</artifactId>

<version>2.7.3</version>

<exclusions>

<exclusion>

<groupId>org.slf4j</groupId>

<artifactId>slf4j-log4j12</artifactId>

</exclusion>

</exclusions>

</dependency>

<dependency>

<groupId>org.apache.dubbo</groupId>

<artifactId>dubbo</artifactId>

<version>2.7.3</version>

</dependency>

2、application-local.yml 配置

# -------------------- Dubbo 配置 BEGIN --------------------

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"}),指定不同的注册中心

    registry1:

      register: true #默认true, false:表示服务不注册到注册中心

      address: zookeeper://172.20.38.00:2181

    registry2:

      register: true

      address: zookeeper://10.234.9.00:2181

  application:

    name: xx-xxx-api

  #    qos-enable: true # 默认值 true, 是否允许在线运维, 配置和查询服务

  #    qos-port: 22222 # 默认值2222

  #    qos-accept-foreign-ip: false # 默认false , 不允许远程访问 telnet

  scan:

    base-packages: com.xxxx.xx.xxxx.service.dubbo #此处可以用@EnableDubbo 或者@DubboComponentScan代替 例:@DubboComponentScan(basePackages ="com.xxxx.xx.xxxx.service.dubbo")

  protocol:

    name: dubbo

    port: 28080

  provider:

    retries: 0        # 服务提供者无需重试

    timeout: 60000    # 默认只有1s

# -------------------- Dubbo 配置 END --------------------


3、使用(注册与消费)

//将服务注册到两个不同的注册中心上

@Service(version="1.0.0",registry = {"registry1","registry2"})

publicclassUserInfoISVImplimplementsUserInfoISV{

@Override

publicStringsayHello(String name){

return"你好呀,"+name+"先生!";

    }

}




//将服务注册到不同的注册中心,从不同的注册中心取

@Reference(version="1.0.0",registry = "registry1")

privateUserInfoISV userInfoISV1;

@Reference(version="1.0.0",registry="registry2")

privateUserInfoISV userInfoISV2;


2020-08-15新增:

当公用一个注册中心互相需要dubbo注册与消费时;可能存在某一方工程未启动,未注册服务到注册中心,影响消费方工程启动;可以加以下配置解决:

dubbo:

  consumer:

    check: false



以上内容摘抄部分博客,只为自己记录理解及分享;如有侵权,请联系删除!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容