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

相关文章
|
存储 缓存 负载均衡
微服务架构中的服务发现与注册中心实践
【7月更文挑战第26天】在微服务的海洋里,每个服务都是一座孤岛。要让这些孤岛彼此发现、相互通讯,就需要一个高效的信使系统——服务发现与注册中心。本文将深入探讨如何搭建和维护这一核心组件,确保微服务间的顺畅交流。
|
存储 分布式计算 物联网
Apache IoTDB进行IoT相关开发实践
当今社会,物联网技术的发展带来了许多繁琐的挑战,尤其是在数据库管理系统领域,比如实时整合海量数据、处理流中的事件以及处理数据的安全性。例如,应用于智能城市的基于物联网的交通传感器可以实时生成大量的交通数据。据估计,未来5年,物联网设备的数量将达数万亿。物联网产生大量的数据,包括流数据、时间序列数据、RFID数据、传感数据等。要有效地管理这些数据,就需要使用数据库。数据库在充分处理物联网数据方面扮演着非常重要的角色。因此,适当的数据库与适当的平台同等重要。由于物联网在世界上不同的环境中运行,选择合适的数据库变得非常重要。 原创文字,IoTDB 社区可进行使用与传播 一、什么是IoTDB 我
775 9
Apache IoTDB进行IoT相关开发实践
|
Cloud Native Java Nacos
微服务注册中心-Nacos概述
该博客文章提供了对Nacos的全面概述,包括其基本介绍、与Spring Cloud集成的优势、主要功能以及如何在Spring Cloud Alibaba项目中作为服务注册中心使用Nacos。文章解释了Nacos是一个动态服务发现、配置管理和服务管理平台,支持服务发现、健康监测、动态配置、DNS服务和元数据管理。还介绍了如何下载和启动Nacos服务器,以及如何将微服务注册到Nacos中,包括修改pom.xml文件引入依赖、配置application.properties文件和使用@EnableDiscoveryClient注解开启服务注册发现功能。
微服务注册中心-Nacos概述
|
Dubbo 应用服务中间件 Apache
Dubbo 应用切换 ZooKeeper 注册中心实例,流量无损迁移
如果 Dubbo 应用使用 ZooKeeper 作为注册中心,现在需要切换到新的 ZooKeeper 实例,如何做到流量无损?
372 4
|
设计模式 存储 运维
微服务架构中的服务发现与注册中心设计模式
在现代软件工程实践中,微服务架构已成为构建灵活、可扩展系统的首选方案。本文将深入探讨微服务架构中至关重要的服务发现与注册中心设计模式。我们将从服务发现的基本原理出发,逐步解析注册中心的工作机制,并以Eureka和Consul为例,对比分析不同实现的优劣。文章旨在为开发者提供一套清晰的指导原则,帮助他们在构建和维护微服务系统时做出更明智的技术选择。
|
存储 分布式计算 物联网
Apache IoTDB进行IoT相关开发实践
IoTDB是专为物联网(IoT)设计的开源时间序列数据库,提供数据收集、存储、管理和分析。它支持高效的数据写入、查询,适用于处理大规模物联网数据,包括流数据、时间序列等。IoTDB采用轻量级架构,可与Hadoop和Spark集成,支持多种存储策略,确保数据安全和高可用性。此外,它还具有InfluxDB协议适配器,允许无缝迁移和兼容InfluxDB的API和查询语法,简化物联网项目的数据管理。随着物联网设备数量的快速增长,选择适合的数据库如IoTDB对于数据管理和分析至关重要。
958 12
|
Java 持续交付 项目管理
Maven是一款基于Apache许可的项目管理和构建自动化工具,在Java开发中极为流行。
Maven是一款基于Apache许可的项目管理和构建自动化工具,在Java开发中极为流行。它采用项目对象模型(POM)来描述项目,简化构建流程。Maven提供依赖管理、标准构建生命周期、插件扩展等功能,支持多模块项目及版本控制。在Java Web开发中,Maven能够自动生成项目结构、管理依赖、自动化构建流程并运行多种插件任务,如代码质量检查和单元测试。遵循Maven的最佳实践,结合持续集成工具,可以显著提升开发效率和项目质量。
406 1
|
开发框架 Dubbo 应用服务中间件
微服务开发框架-----Apache Dubbo
这篇文章介绍了Apache Dubbo微服务开发框架,它提供RPC通信和微服务治理能力,支持服务发现、负载均衡和流量治理等功能,并强调了Dubbo在微服务规模化实践和企业级治理方面的优势。
微服务开发框架-----Apache Dubbo
|
存储 分布式计算 物联网
Apache IoTDB进行IoT相关开发实践
The article introduces IoTDB, an open-source time-series database designed for efficient management of IoT-generated data. It addresses challenges like real-time integration of massive datasets and security. IoTDB supports high-performance storage,
758 0
Apache IoTDB进行IoT相关开发实践
|
负载均衡 微服务
微服务06----Eureka注册中心,微服务的两大服务,订单服务和用户服务,订单服务需要远程调用我们的用,户服务,消费者,如果环境改变,硬编码问题就会随之产生,为了应对高并发,我们可能会部署成一个集
微服务06----Eureka注册中心,微服务的两大服务,订单服务和用户服务,订单服务需要远程调用我们的用,户服务,消费者,如果环境改变,硬编码问题就会随之产生,为了应对高并发,我们可能会部署成一个集

推荐镜像

更多