带你读《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

相关文章
|
Dubbo Java 应用服务中间件
性能工具之JMeter Dubbo 脚本开发
【5月更文挑战第13天】性能工具之JMeter Dubbo 脚本开发
218 3
性能工具之JMeter Dubbo 脚本开发
|
Dubbo 应用服务中间件 Apache
Star 4w+,Apache Dubbo 3.3 全新发布,Triple X 领衔,开启微服务通信新时代
在 Apache Dubbo 突破 4w Star 之际,Apache Dubbo 团队正式宣布,Dubbo 3.3 正式发布!作为全球领先的开源微服务框架,Dubbo 一直致力于为开发者提供高性能、可扩展且灵活的分布式服务解决方案。此次发布的 Dubbo 3.3,通过 Triple X 的全新升级,突破了以往局限,实现了对南北向与东西向流量的全面支持,并提升了对云原生架构的友好性。
399 101
|
9月前
|
Dubbo 应用服务中间件 Apache
Star 4w+,Apache Dubbo 3.3 全新发布,Triple X 领衔,开启微服务通信新时代
Star 4w+,Apache Dubbo 3.3 全新发布,Triple X 领衔,开启微服务通信新时代
166 0
|
Dubbo 应用服务中间件 Apache
Dubbo 应用切换 ZooKeeper 注册中心实例,流量无损迁移
如果 Dubbo 应用使用 ZooKeeper 作为注册中心,现在需要切换到新的 ZooKeeper 实例,如何做到流量无损?
193 4
|
监控 Dubbo Java
dubbo学习三:springboot整合dubbo+zookeeper,并使用dubbo管理界面监控服务是否注册到zookeeper上。
这篇文章详细介绍了如何将Spring Boot与Dubbo和Zookeeper整合,并通过Dubbo管理界面监控服务注册情况。
1006 0
dubbo学习三:springboot整合dubbo+zookeeper,并使用dubbo管理界面监控服务是否注册到zookeeper上。
|
开发框架 Dubbo 应用服务中间件
微服务开发框架-----Apache Dubbo
这篇文章介绍了Apache Dubbo微服务开发框架,它提供RPC通信和微服务治理能力,支持服务发现、负载均衡和流量治理等功能,并强调了Dubbo在微服务规模化实践和企业级治理方面的优势。
微服务开发框架-----Apache Dubbo
|
Dubbo 网络协议 Java
深入掌握Dubbo服务提供者发布与注册原理
该文章主要介绍了Dubbo服务提供者发布与注册的原理,包括服务发布的流程、多协议发布、构建Invoker、注册到注册中心等过程。
深入掌握Dubbo服务提供者发布与注册原理
|
XML 监控 Dubbo
Dubbo03【管理控制台和监控中心搭建】,Java开发实用必备的几款插件
Dubbo03【管理控制台和监控中心搭建】,Java开发实用必备的几款插件
|
消息中间件 监控 Cloud Native
阿里云云原生生态强调事件驱动架构(EDA),借助EventBridge和EventMesh实现微服务间的高效协作。
【7月更文挑战第3天】阿里云云原生生态强调事件驱动架构(EDA),借助EventBridge和EventMesh实现微服务间的高效协作。EDA提升系统弹性和可维护性,促进业务敏捷性。实施路径包括事件模型设计、集成阿里云服务、开发事件处理器和监控优化。通过阿里云服务,开发者能轻松构建响应式、可扩展的云原生应用,加速创新并驱动数字化转型。
272 0
|
Dubbo Java 应用服务中间件
深度剖析:Dubbo使用Nacos注册中心的坑
2020年笔者在做微服务部件升级时,Dubbo的注册中心从Zookeeper切换到Nacos碰到个问题,最近刷Github又有网友提到类似的问题,就在这篇文章里做个梳理和总结。
深度剖析:Dubbo使用Nacos注册中心的坑

推荐镜像

更多