Dubbo -- 系统学习 笔记 -- 示例 -- 多注册中心

Posted limeOracle

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Dubbo -- 系统学习 笔记 -- 示例 -- 多注册中心相关的知识,希望对你有一定的参考价值。

Dubbo -- 系统学习 笔记 -- 目录

示例

  想完整的运行起来,请参见:快速启动,这里只列出各种场景的配置方式

多注册中心

可以自行扩展注册中心,参见:注册中心扩展

(1) 多注册中心注册

比如:中文站有些服务来不及在青岛部署,只在杭州部署,而青岛的其它应用需要引用此服务,就可以将服务同时注册到两个注册中心。

  XML : provider.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans.xsd
    http://code.alibabatech.com/schema/dubbo
    http://code.alibabatech.com/schema/dubbo/dubbo.xsd"
>       <dubbo:application name="world"  />       <!-- 多注册中心配置 -->     <dubbo:registry id="hangzhouRegistry" address="10.20.141.150:9090" />     <dubbo:registry id="qingdaoRegistry" address="10.20.141.151:9010" default="false" />       <!-- 向多个注册中心注册 -->     <dubbo:service interface="com.alibaba.hello.api.HelloService" version="1.0.0" ref="helloService" registry="hangzhouRegistry,qingdaoRegistry" />   </beans>

(2) 不同服务使用不同注册中心

比如:CRM有些服务是专门为国际站设计的,有些服务是专门为中文站设计的。

  XML : provider.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans.xsd
    http://code.alibabatech.com/schema/dubbo
    http://code.alibabatech.com/schema/dubbo/dubbo.xsd"
>       <dubbo:application name="world"  />       <!-- 多注册中心配置 -->     <dubbo:registry id="chinaRegistry" address="10.20.141.150:9090" />     <dubbo:registry id="intlRegistry" address="10.20.154.177:9010" default="false" />       <!-- 向中文站注册中心注册 -->     <dubbo:service interface="com.alibaba.hello.api.HelloService" version="1.0.0" ref="helloService" registry="chinaRegistry" />       <!-- 向国际站注册中心注册 -->     <dubbo:service interface="com.alibaba.hello.api.DemoService" version="1.0.0" ref="demoService" registry="intlRegistry" />   </beans>

(3) 多注册中心引用

比如:CRM需同时调用中文站和国际站的PC2服务,PC2在中文站和国际站均有部署,接口及版本号都一样,但连的数据库不一样。

  XML : consumer.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans.xsd
    http://code.alibabatech.com/schema/dubbo
    http://code.alibabatech.com/schema/dubbo/dubbo.xsd"
>       <dubbo:application name="world"  />       <!-- 多注册中心配置 -->     <dubbo:registry id="chinaRegistry" address="10.20.141.150:9090" />     <dubbo:registry id="intlRegistry" address="10.20.154.177:9010" default="false" />       <!-- 引用中文站服务 -->     <dubbo:reference id="chinaHelloService" interface="com.alibaba.hello.api.HelloService" version="1.0.0" registry="chinaRegistry" />       <!-- 引用国际站站服务 -->     <dubbo:reference id="intlHelloService" interface="com.alibaba.hello.api.HelloService" version="1.0.0" registry="intlRegistry" />   </beans>

如果只是测试环境临时需要连接两个不同注册中心,使用竖号分隔多个不同注册中心地址:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans.xsd
    http://code.alibabatech.com/schema/dubbo
    http://code.alibabatech.com/schema/dubbo/dubbo.xsd"
>       <dubbo:application name="world"  />       <!-- 多注册中心配置,竖号分隔表示同时连接多个不同注册中心,同一注册中心的多个集群地址用逗号分隔 -->     <dubbo:registry address="10.20.141.150:9090|10.20.154.177:9010" />       <!-- 引用服务 -->     <dubbo:reference id="helloService" interface="com.alibaba.hello.api.HelloService" version="1.0.0" />   </beans>

啦啦啦

以上是关于Dubbo -- 系统学习 笔记 -- 示例 -- 多注册中心的主要内容,如果未能解决你的问题,请参考以下文章

Dubbo -- 系统学习 笔记 -- 示例 -- 参数验证

Dubbo -- 系统学习 笔记 -- 示例 -- 泛化引用

Dubbo -- 系统学习 笔记 -- 示例 -- 分组聚合

Dubbo -- 系统学习 笔记 -- 示例 -- 结果缓存

Dubbo -- 系统学习 笔记 -- 示例 -- 负载均衡

Dubbo -- 系统学习 笔记 -- 示例 -- 多协议