带你读《Apache Dubbo微服务开发从入门到精通》—— 一、 Dubbo流量治理体系概览(2)

简介: 带你读《Apache Dubbo微服务开发从入门到精通》—— 一、 Dubbo流量治理体系概览(2)

《Apache Dubbo微服务开发从入门到精通》——基于规则的流量治理——  一、 Dubbo流量治理体系概览(1) https://developer.aliyun.com/article/1224385


2. 路由规则分类

 

1) 标签路由规则

 

标签路由通过将某一个服务的实例划分到不同的分组,约束具有特定标签的流量只能在指定分组中流转,不同分组为不同的流量场景服务,从而实现流量隔离的目的。标签路由可以作为蓝绿发布、灰度发布等场景能力的基础。

 

标签路由规则是一个非此即彼的流量隔离方案,也就是匹配标签的请求会100%转发到有相同标签的实例,没有匹配标签的请求会100%转发到其余未匹配的实例。如果您需要按比例的流量调度方案,请参考示例Dubbo官网示例任务中的【基于权重的按比例流量路由】。

 

标签主要是指对Provider端应用实例的分组,目前有两种方式可以完成实例分组,分别是动态规则打标和静态规则打标。动态规则打标可以在运行时动态的圈住一组机器实例,而静态规则打标则需要实例重启后才能生效,其中,动态规则相较于静态规则优先级更高,而当两种规则同时存在且出现冲突时,将以动态规则为准。

 

标签规则示例—静态打标

 

静态打标需要在服务提供者实例启动前确定,并且必须通过特定的参数tag指定。

 

Provider

 

在Dubbo实例启动前,指定当前实例的标签,如部署在杭州区域的实例,指定tag=gray。

 

image.png

 

or

 

image.png

or

 

image.png

 

• Consumer

 

发起调用的一方,在每次请求前通过tag设置流量标签,确保流量被调度到带有同样标签的服务提供方。

 

image.png

 

标签规则示例—动态打标

 

相比于静态打标只能通过tag属性设置,且在启动阶段就已经固定下来,动态标签可以匹配任意多个属性,根据指定的匹配条件将Provider实例动态的划分到不同的流量分组中。

 

• Provider

 

以下规则对shop-detail应用进行了动态归组,匹配envgray的实例被划分到gray分组,其余不匹配envgray继续留在默认分组无tag

 

image.png

 

注:这里牵涉到如何给您的实例打各种原始label的问题,即上面示例中的env,一种方式是直接写在配置文件中,如上面静态规则实例provider部分的配置所示,另一种方式是通过预设环境变量指定,关于这点请参考下文的如何给实例打标一节。

 

• Consumer

 

服务发起方的设置方式和之前静态打标规则保持一致,只需要在每次请求前通过tag设置流量标签,确保流量被调度到带有同样标签的服务提供方。

 

image.png

 

设置了以上标签的流量,将全部导流到hangzhou-region划分的实例上。

 

注:

请求标签的作用域仅为一次点对点的RPC请求。比如,在一个A->B->C调用链路上,如果A->B调用通过setAttachment设置了tag参数,则该参数不会在B->C的调用中生效,同样的,在完成了A->B->C的整个调用同时A收到调用结果后,如果想要相同的tag参数,则在发起其他调用前仍需要单独设置setAttachment。可以参考Dubbo官网中的【示例任务】-【环境隔离】了解更多tag全链路传递解决方案。

相关文章
|
人工智能 Dubbo 应用服务中间件
使用 Apache Dubbo 释放 DeepSeek R1 的全部潜力
本文介绍了如何利用 Apache Dubbo 的多语言 SDK 充分释放 DeepSeek R1 的全部潜力,助力 AI 开发的高效落地。
528 99
|
Dubbo Java 应用服务中间件
Spring Cloud Dubbo:微服务通信的高效解决方案
【10月更文挑战第15天】随着信息技术的发展,微服务架构成为企业应用开发的主流。Spring Cloud Dubbo结合了Dubbo的高性能RPC和Spring Cloud的生态系统,提供高效、稳定的微服务通信解决方案。它支持多种通信协议,具备服务注册与发现、负载均衡及容错机制,简化了服务调用的复杂性,使开发者能更专注于业务逻辑的实现。
412 2
|
安全 应用服务中间件 API
微服务分布式系统架构之zookeeper与dubbo-2
微服务分布式系统架构之zookeeper与dubbo-2
|
Dubbo 安全 应用服务中间件
Apache Dubbo 正式发布 HTTP/3 版本 RPC 协议,弱网效率提升 6 倍
在 Apache Dubbo 3.3.0 版本之后,官方推出了全新升级的 Triple X 协议,全面支持 HTTP/1、HTTP/2 和 HTTP/3 协议。本文将围绕 Triple 协议对 HTTP/3 的支持进行详细阐述,包括其设计目标、实际应用案例、性能测试结果以及源码架构分析等内容。
1205 127
|
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 的全新升级,突破了以往局限,实现了对南北向与东西向流量的全面支持,并提升了对云原生架构的友好性。
523 107
|
监控 负载均衡 API
Apache Apisix轻松打造亿级流量Api网关
Apache APISIX 是一个动态、实时、高性能的 API 网关,提供负载均衡、动态上行、灰度发布、熔断、鉴权、可观测等丰富的流量管理功能。适用于处理传统南北向流量、服务间东西向流量及 k8s 入口控制。Airflow 是一个可编程、调度和监控的工作流平台,基于有向无环图 (DAG) 定义和执行任务,提供丰富的命令行工具和 Web 管理界面,方便系统运维和管理。
Apache Apisix轻松打造亿级流量Api网关
|
Dubbo 应用服务中间件 Apache
Star 4w+,Apache Dubbo 3.3 全新发布,Triple X 领衔,开启微服务通信新时代
Star 4w+,Apache Dubbo 3.3 全新发布,Triple X 领衔,开启微服务通信新时代
244 0
|
Dubbo Cloud Native 应用服务中间件
阿里云的 Dubbo 和 Nacos 深度整合,提供了高效的服务注册与发现、配置管理等关键功能,简化了微服务治理,提升了系统的灵活性和可靠性。
在云原生时代,微服务架构成为主流。阿里云的 Dubbo 和 Nacos 深度整合,提供了高效的服务注册与发现、配置管理等关键功能,简化了微服务治理,提升了系统的灵活性和可靠性。示例代码展示了如何在项目中实现两者的整合,通过 Nacos 动态调整服务状态和配置,适应多变的业务需求。
597 2
|
Dubbo Java 应用服务中间件
Dubbo学习圣经:从入门到精通 Dubbo3.0 + SpringCloud Alibaba 微服务基础框架
尼恩团队的15大技术圣经,旨在帮助开发者系统化、体系化地掌握核心技术,提升技术实力,从而在面试和工作中脱颖而出。本文介绍了如何使用Dubbo3.0与Spring Cloud Gateway进行整合,解决传统Dubbo架构缺乏HTTP入口的问题,实现高性能的微服务网关。
|
Dubbo Java 应用服务中间件
微服务学习 | Springboot整合Dubbo+Nacos实现RPC调用
微服务学习 | Springboot整合Dubbo+Nacos实现RPC调用

热门文章

最新文章

推荐镜像

更多