带你读《Apache Dubbo微服务开发从入门到精通》——二、 迁移到应用级服务发现(2)

本文涉及的产品
云原生网关 MSE Higress,422元/月
Serverless 应用引擎免费试用套餐包,4320000 CU,有效期3个月
任务调度 XXL-JOB 版免费试用,400 元额度,开发版规格
简介: 带你读《Apache Dubbo微服务开发从入门到精通》——二、 迁移到应用级服务发现(2)

《Apache Dubbo微服务开发从入门到精通》——迁移到 Dubbo3——二、 迁移到应用级服务发现(1) https://developer.aliyun.com/article/1223591


3) Consumer端升级过程

 

对于2.x的消费者实例,它们看到的自然都是2.x版本的提供者地址列表

 

对于3.x的消费者,它具备同时发现2.x与3.x提供者地址列表的能力。在默认情况下,如果集群中存在可以消费的3.x的地址,将自动消费3.x的地址,如果不存在新地址则自动消费2.x的地址。Dubbo3提供了开关来控制这个行为:

 

image.png

 

dubbo.application.service-discovery.migration支持通过-D以及全局配置中心两种方式进行配置。

 

image.png

 

接下来,我们就具体看一下,如何通过双订阅模式(APPLICATION_FIRST)让升级到3.x的消费端迁移到应用级别的地址。在具体展开之前,先明确一条消费端的选址行为:对于双订阅的场景,消费端虽然可同时持有2.x地址与3.x地址,但选址过程中两份地址是完全隔离的:要么用2.x地址,要么用3.x地址,不存在两份地址混合调用的情况,这个决策过程是在收到第一次地址通知后就完成了的。

 

下面,我们看一个APPLICATION_FIRST策略的具体操作过程。

 

首先,提前在全局配置中心Nacos配置一条配置项(所有消费端都将默认执行这个选址策略):

 

image.png

 

紧接着,升级消费端到3.x版本并启动,这时消费端读取到APPLICATION_FIRST配置后,执行双订阅逻辑(订阅2.x接口级地址与3.x应用级地址)

 

至此,升级操作就完成了,剩下的就是框架内部的执行了。在调用发生前,框架在消费端会有一个“选址过程”,注意这里的选址和之前2.x版本是有区别的,选址过程包含了两层筛选:

 

先进行地址列表(ClusterInvoker)筛选(接口级地址or应用级地址)

再进行实际的provider地址(Invoker)筛选。

 

image.png

 

ClusterInvoker筛选的依据,可以通过MigrationAddressComparator SPI自行定义,目前官方提供了一个简单的地址数量比对策略,即当应用级地址数量==接口级地址数量满足时则进行迁移。

 

注:

其实FORCE_INTERFACE、APPLICATION_FIRST、FORCE_APPLICATION控制的都是这里的ClusterInvoker类型的筛选策略



相关文章
|
4月前
|
监控 Java 持续交付
深入理解微服务架构及其在现代应用开发中的应用
深入理解微服务架构及其在现代应用开发中的应用
115 1
|
1月前
|
人工智能 Dubbo 应用服务中间件
使用 Apache Dubbo 释放 DeepSeek R1 的全部潜力
本文介绍了如何利用 Apache Dubbo 的多语言 SDK 充分释放 DeepSeek R1 的全部潜力,助力 AI 开发的高效落地。
|
6天前
|
存储 NoSQL 关系型数据库
微服务——MongoDB的应用场景
随着Web2.0时代的到来,传统关系型数据库(如MySQL)在高并发读写、海量数据存储及高可扩展性需求方面逐渐力不从心。而MongoDB凭借其灵活的文档结构和高效性能,在社交、游戏、物流、物联网和视频直播等场景中表现出色。这些场景通常具有数据量大、写入频繁且对事务要求不高的特点。选择MongoDB适合以下情况:应用无需复杂事务与join支持、需求不确定需快速迭代、需处理高QPS读写或超大规模数据存储、追求高可用性和快速水平扩展能力。相比MySQL,MongoDB能以更低的学习、开发和运维成本满足现代应用需求。
17 0
|
25天前
|
Dubbo 应用服务中间件 Apache
Star 4w+,Apache Dubbo 3.3 全新发布,Triple X 领衔,开启微服务通信新时代
Star 4w+,Apache Dubbo 3.3 全新发布,Triple X 领衔,开启微服务通信新时代
|
4月前
|
监控 持续交付 Docker
Docker容器化部署在微服务架构中的应用
Docker容器化部署在微服务架构中的应用
373 60
|
4月前
|
Cloud Native 安全 持续交付
深入理解微服务架构及其在现代软件开发中的应用
深入理解微服务架构及其在现代软件开发中的应用
137 33
|
4月前
|
Dubbo 安全 应用服务中间件
Apache Dubbo 正式发布 HTTP/3 版本 RPC 协议,弱网效率提升 6 倍
在 Apache Dubbo 3.3.0 版本之后,官方推出了全新升级的 Triple X 协议,全面支持 HTTP/1、HTTP/2 和 HTTP/3 协议。本文将围绕 Triple 协议对 HTTP/3 的支持进行详细阐述,包括其设计目标、实际应用案例、性能测试结果以及源码架构分析等内容。
327 10
|
4月前
|
存储 监控 API
深入解析微服务架构及其在现代应用中的实践
深入解析微服务架构及其在现代应用中的实践
140 12
|
4月前
|
负载均衡 Java 持续交付
深入解析微服务架构中的服务发现与负载均衡
深入解析微服务架构中的服务发现与负载均衡
248 7
|
4月前
|
监控 持续交付 API
深入理解微服务架构及其在现代应用开发中的应用
深入理解微服务架构及其在现代应用开发中的应用
60 4

推荐镜像

更多