`

dubbo在多机房多注册中心的方案

阅读更多

 

技术交流群:534368042

起因:项目在服务化之后,开辟了一个新的专有云机房A,在原有物理机房B系统不迁移的情况下,需要A的系统调用B的各种dubbo服务,且A到B之间不能直接访问需要通过交换机做网络映射,现有B内部的网段是192.168.1.X A网段59.10.59.X 映射后A访问B的网段是10.59.10.X,造成A消费者无法直接注册到B的zookeeper集群注册中心,访问B的服务。

方案:通过dubbo的双注册中心的模式,A机房访问B机房服务通过修改A机房机器的hosts
例如B机房服务内网地址192.168.1.120 机器名app1 这在A机房机器消费者hosts配置app1 192.168.1.120服务注册是dubbo://app1:20880/XXX/XXX,B机房消费者保持不变,网络架构如下:

Paste_Image.png

1.dubbo在A机房zookeeper注册中心通过app1模式,在B机房192.168.1.X 配置如下:

1
2
3
4
5
6
<!-- 多注册中心配置 -->
   <dubbo:registry id="hangzhouRegistry" address="192.168.1.110:20880" />
   <dubbo:registry id="qingdaoRegistry" address="app1:20880" default="false" />

   <!-- 向多个注册中心注册 -->
   <dubbo:service interface="com.alibaba.hello.api.HelloService" version="1.0.0" ref="helloService" registry="hangzhouRegistry,qingdaoRegistry" />

 

2.修改dubbo包的的AbstractServer类构造函数

Paste_Image.png

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics