Dubbo&ZK分布式服务化改造(四)——Dubbo多注册中心 & 服务迁移
来源:互联网 发布:用指针求数组平均值 编辑:程序博客网 时间:2024/05/22 13:42
一、Dubbo多注册中心
1、 应用场景
例如阿里有些服务来不及在青岛部署,只在杭州部署,而青岛的其它应用需要引用此服务,就可以将服务同时注册到两个注册中心。
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/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://code.alibabatech.com/schema/dubbohttp://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有些服务是专门为国际站设计的,有些服务是专门为中文站设计的。
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/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://code.alibabatech.com/schema/dubbohttp://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在中文站和国际站均有部署,接口及版本号都一样,但连的数据库不一样。
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/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://code.alibabatech.com/schema/dubbohttp://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>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/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://code.alibabatech.com/schema/dubbohttp://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多注册中心的服务迁移
1、顾名思义,将服务从一个地儿迁到另一个地儿,例如从A地迁到B地。
2、如何实现多注册中心的服务迁移
步骤一
添加B地的注册中心地址,AB两地的注册中心间用英文的|分割,(同一个服务集群的zk节点使用逗号分割)
例如:dubbo.registry.address=192.168.220.128:2181|192.168.221.129:2181,192.168.221.130:2181,192.168.221.131:2181 这就是两个注册中心配置sample
步骤二
Jenkins重新构建服务,zk1本身就是含有全部服务的,现在构建是将服务部署到zk2集群中。这样就可实现A的zk和B地的zk两套注册中心享有两套相同的服务
步骤三
把服务的消费端都构建一遍;
步骤四
先取消服务消费者调用zk1的服务,具体实施就是去掉第一个zk的配置,然后构建消费者
步骤五
把服务提供者的配置也取消;然后重新构建服务提供者。这样就完成了将zk1中的所有服务迁移到zk2中,且去除zk1中的所有服务。
1 0
- Dubbo&ZK分布式服务化改造(四)——Dubbo多注册中心 & 服务迁移
- Dubbo&ZK分布式服务化改造(四)——Dubbo多注册中心 & 服务迁移
- Dubbo&ZK分布式服务化改造(四)——Dubbo多注册中心 & 服务迁移
- Dubbo&ZK分布式服务化改造(三)——Dubbo服务高级特性及服务划分原则
- Dubbo分布式服务治理(一)——Dubbo注册中心&&管理平台安装(Linux)
- Dubbo > Dubbo服务化改造
- Zookeeper注册中心安装——dubbo服务需要
- Dubbo分布式服务治理(二)——Dubbo服务运行方式&&监控中心安装(Linux)
- Dubbo之——服务只注册
- dubbo分布式服务架构—基础入门
- 部署dubbo-admin监控dubbo服务(以zookeeper为注册中心)
- dubbo对传统项目服务化改造
- (四)dubbo注册中心-zookeeper
- Docker dubbo 服务注册
- dubbo 服务注册
- dubbo服务注册
- Dubbo分布式服务框架
- dubbo分布式服务框架
- matlab-高数 判断高阶无穷小
- 补间动画和逐帧动画结合之蝴蝶飞舞
- Java 修饰符
- volatile的应用
- 产品经理系列视频教程
- Dubbo&ZK分布式服务化改造(四)——Dubbo多注册中心 & 服务迁移
- 二叉树的遍历方法
- 研究HelixServer的一路风雨
- Multi-University 2015 #7 D(hdu 5372 Segment Game)
- 本地化下按首字母分组排序的神器——UILocalizedIndexedCollation
- NodeJs——(6)文件系统 fs
- 各种快递查询Api接口(快递鸟)
- 失恋案例分析报告
- maven 学习(一)