带你读《Apache Dubbo微服务开发从入门到精通》——五、 注册中心(7)

简介: 带你读《Apache Dubbo微服务开发从入门到精通》——五、 注册中心(7)

《Apache Dubbo微服务开发从入门到精通》——服务治理与生态——五、 注册中心(6) https://developer.aliyun.com/article/1223896



2) 多注册中心订阅

 

服务订阅由于涉及到地址聚合和路由选址,因此逻辑会更加复杂一些。从单个服务订阅的视角,如果存在多注册中心订阅的情况,则可以根据注册中心间的地址是否聚合分为两种场景。

 

a) 多注册中心地址不聚合

 

image.png

 

如以上所示独立配置的注册中心组件,地址列表在消费端默认是完全隔离的,负载均衡选址要经过两步:

 

注册中心集群间选址,选定一个集群

注册中心集群内选址,在集群内进行地址筛选

 

image.png

 

下面我们着重分析下如何控制注册中心集群间选址,可选的策略有如下几种

随机每次请求都随机的分配到一个注册中心集群

 

注:

随机的过程中会有可用性检查,即每个集群要确保至少有一个地址可用才有可能被选到。

 

preferred优先

 

image.png

 

如果有注册中心集群配置了preferred=“true”,则所有流量都会被路由到这个集群。

 

weighted

 

image.png

 

基于权重的随机负载均衡,以上集群间会有大概10:1的流量分布。

 

同zone优先

 

image.png

 

根据Invocation中带的流量参数或者在当前节点通过context上下文设置的参数,流量会被精确的引导到对应的集群。

 

b) 多注册中心地址聚合

 

image.png

 

这里增加了一个特殊的multiple协议开头的注册中心,其中:

 

multiple://127.0.0.1:2181并没有什么具体含义,只是一个特定格式的占位符,地址可以随意指定

 

reference-registry指定了要聚合的注册中心集群的列表,示例中有两个集群,分别是zookeeper://address11?backup=address12,address13和zookeeper://address21?backup=address22,address23,其中还特别指定了集群分隔符 `separator=";"

 

如下图所示,不同注册中心集群的地址会被聚合到一个地址池后在消费端做负载均衡或路由选址。

 

image.png

 

在3.1.0版本及之后,还支持每个注册中心集群上设置特定的attachments属性,以实现对该注册中心集群下的地址做特定标记,后续配合Router组件扩展如TagRouter等就可以实现跨机房间的流量治理能力。

 

image.png

 

增加attachments=zone=hangzhou,tag=middleware后,所有来自该注册中心的URL地址将自动携带zone和tag两个标识,方便消费端更灵活的做流量治理。


《Apache Dubbo微服务开发从入门到精通》——服务治理与生态——五、 注册中心(8) https://developer.aliyun.com/article/1223891

相关文章
|
运维 监控 负载均衡
探索微服务架构下的服务治理:动态服务管理平台深度解析
探索微服务架构下的服务治理:动态服务管理平台深度解析
|
运维 监控 安全
探索微服务架构下的服务治理:动态服务管理平台的力量
探索微服务架构下的服务治理:动态服务管理平台的力量
|
负载均衡 监控 Java
深入探索微服务架构下的服务治理
深入探索微服务架构下的服务治理
217 39
|
存储 监控 负载均衡
构建高效微服务架构:服务治理与监控的实践
构建高效微服务架构:服务治理与监控的实践
|
负载均衡 Java 云计算
微服务架构下的服务治理与容错机制
微服务架构下的服务治理与容错机制
265 20
|
负载均衡 算法 Java
深入探索微服务架构下的服务治理
深入探索微服务架构下的服务治理
|
监控 安全 测试技术
深入理解并实践微服务架构中的服务治理
深入理解并实践微服务架构中的服务治理
647 1
|
运维 监控 Nacos
探索微服务架构下的服务治理:动态服务管理平台的力量
探索微服务架构下的服务治理:动态服务管理平台的力量
|
运维 负载均衡 监控
深入探索微服务架构下的服务治理
深入探索微服务架构下的服务治理
229 1
|
存储 分布式计算 物联网
Apache IoTDB进行IoT相关开发实践
当今社会,物联网技术的发展带来了许多繁琐的挑战,尤其是在数据库管理系统领域,比如实时整合海量数据、处理流中的事件以及处理数据的安全性。例如,应用于智能城市的基于物联网的交通传感器可以实时生成大量的交通数据。据估计,未来5年,物联网设备的数量将达数万亿。物联网产生大量的数据,包括流数据、时间序列数据、RFID数据、传感数据等。要有效地管理这些数据,就需要使用数据库。数据库在充分处理物联网数据方面扮演着非常重要的角色。因此,适当的数据库与适当的平台同等重要。由于物联网在世界上不同的环境中运行,选择合适的数据库变得非常重要。 原创文字,IoTDB 社区可进行使用与传播 一、什么是IoTDB 我
584 9
Apache IoTDB进行IoT相关开发实践

热门文章

最新文章

推荐镜像

更多