1 dubbo多注册中心
dubbo可以支持多注册中心,以及多协议, 本文示例dubbo同时注册到nacos和zookeeper注册中心:
在前文基础上,给provider consumer模块加上zookeeper依赖:
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo-dependencies-zookeeper</artifactId>
<version>2.7.7</version>
<type>pom</type>
</dependency>
然后两个模块都配置多注册中心:
# 应用名称
spring.application.name=springboot-dubbo-sample-provider
dubbo.protocol.name=dubbo
dubbo.scan.base-packages=com.lchtest.springboot.dubbo.springbootdubbosampleprovider.service
# -1 让系统生成端口号
dubbo.protocol.port=-1
# 注册中心地址,跟springcloud集成dubbo不同,这里是用dubbo的注册中心配置项
#dubbo.registry.address=nacos://192.168.61.1:8848
# dubbo多注册中心,不同注册中心可以使用不同协议
dubbo.registries.shanghai.address=nacos://192.168.61.1:8848
# 指定默认的注册中心
dubbo.registries.shanghai.default=true
dubbo.registries.shanghai.timeout=10000
dubbo.registries.nanjing.address=zookeeper://127.0.0.1:2181
# 应用名称
spring.application.name=spring-boot-dubbo-sample-consumer
server.port=8888
# 注册中心地址,跟springcloud集成dubbo不同,这里是用dubbo的注册中心配置项
#dubbo.registry.address=nacos://192.168.61.1:8848
dubbo.registries.shanghai.address=nacos://192.168.61.1:8848
dubbo.registries.shanghai.timeout=10000
dubbo.registries.nanjing.address=zookeeper://127.0.0.1:2181
provider模块指定dubbo服务要注册的注册中心:
然后启动nacos注册中心,zookeeper注册中心,provider模块和consumer模块,可以看到注册中心实例信息如下:
1 dubbo服务提供者多版本
dubbo可以同时发布不同的服务版本:
消费端指定需要调用的服务版本:
从注册中心可以看到两个版本的服务都注册上去了。
演示结果:
3 dubbo多注册中心下的负载均衡
dubbo多注册中心场景下,首先会进行注册中心负载均衡,然后是服务的负载均衡:
底层实现还是基于url中的元数据:
本文对应代码:https://download.csdn.net/download/weixin_41300437/87240418