dubbo升级

参考 :https://mp.weixin.qq.com/s/-fvDeGlCLjz0n60naZJnQg

1:多协议发布

应用 B 作为服务提供者,发布了 5 个服务,其中:

  • DemoService1 DemoService2 通过 dubbo 协议发布
  • DemoService3 DemoService4 通过 gRPC 协议发布
  • DemoService0  通过 dubbo 、gRPC 双协议发布

应用 A 作为消费者,使用 dubbo 协议消费 DemoService1 DemoService2,使用 gRPC 协议消费 DemoService0。

应用 B 作为消费者,使用 gRPC 协议消费 DemoService2 DemoService4,使用 dubbo 协议消费 DemoService0。

server:

<dubbo:service interface="org.apache.dubbo.samples.basic.api.DemoService1" protocol="dubbo"/>
<dubbo:service interface="org.apache.dubbo.samples.basic.api.DemoService2" protocol="dubbo"/>
<dubbo:service interface="org.apache.dubbo.samples.basic.api.DemoService3" protocol="grpc"/>
<dubbo:service interface="org.apache.dubbo.samples.basic.api.DemoService4" protocol="grpc"/>
<dubbo:service interface="org.apache.dubbo.samples.basic.api.DemoService0" protocol="dubbo, grpc"/>

client:

A:
<dubbo:reference protocol="dubbo" interface="org.apache.dubbo.samples.basic.api.DemoService1"/>
<dubbo:reference protocol="dubbo" interface="org.apache.dubbo.samples.basic.api.DemoService2"/>
<dubbo:reference protocol="grpc" interface="org.apache.dubbo.samples.basic.api.DemoService0"/>
C:
<dubbo:reference protocol="grpc" interface="org.apache.dubbo.samples.basic.api.DemoService3"/>                                                                                     
<dubbo:reference protocol="grpc" interface="org.apache.dubbo.samples.basic.api.DemoService4"/>

<dubbo:reference protocol="dubbo" interface="org.apache.dubbo.samples.basic.api.DemoService0"/>

2:多注册中心
服务提供端,双注册中心发布

<dubbo:registry id="beijingRegistry" address="zookeeper://${zookeeper.address1}" default="false"/>                                                                           
<dubbo:registry id="shanghaiRegistry" address="zookeeper://${zookeeper.address2}" />

<dubbo:service interface="org.apache.dubbo.samples.multi.registry.api.HelloService" ref="helloService" registry="shanghaiRegistry,beijingRegistry"/>
<dubbo:service interface="org.apache.dubbo.samples.multi.registry.api.DemoService" ref="demoService" registry="shanghaiRegistry,beijingRegistry"/>

 服务消费端,根据消费需求做单/双注册中心订阅


<dubbo:registry id="beijingRegistry" address="zookeeper://${zookeeper.address1}" default="false" preferred="true" weight="100"/>                                                                                         
<dubbo:registry id="shanghaiRegistry" address="zookeeper://${zookeeper.address2}" default="true" weight="20"/>

<dubbo:reference interface="org.apache.dubbo.samples.multi.registry.api.DemoService"/>
<dubbo:reference interface="org.apache.dubbo.samples.multi.registry.api.DemoService" registry="beijingRegistry, shanghaiRegistry"/>
<dubbo:reference interface="org.apache.dubbo.samples.multi.registry.api.HelloService" registry="beijingRegistry"/>
<dubbo:reference interface="org.apache.dubbo.samples.multi.registry.api.HelloService" registry="shanghaiRegistry,shanghaiRegistry"/>

 在引入多注册中心集群后,Dubbo 在流量选址时的多了一层注册中心集群间的负载均衡:

在 Cluster Invoker 这一级,我们支持的选址策略有(2.7.5+ 版本,具体使用请参见文档):

 1、指定优先级


<!-- 来自 preferred=“true” 注册中心的地址将被优先选择,只有该中心无可用地址时才 Fallback 到其他注册中心 --><dubbo:registry address="zookeeper://${zookeeper.address1}" preferred="true" />

2、同 zone 优先

<!-- 选址时会和流量中的 zone key 做匹配,流量会优先派发到相同 zone 的地址 --><dubbo:registry address="zookeeper://${zookeeper.address1}" zone="beijing" />

3、权重轮选

<!-- 来自北京和上海集群的地址,将以 10:1 的比例来分配流量 --><dubbo:registry id="beijing" address="zookeeper://${zookeeper.address1}" weight=”100“ /><dubbo:registry id="shanghai" address="zookeeper://${zookeeper.address2}" weight=”10“ />

4、默认,stick to 任意可用

 

 

 
原文地址:https://www.cnblogs.com/zhonghuahero/p/14144243.html