带你读《Apache Dubbo微服务开发从入门到精通》—— 五、 动态配置规则

简介: 带你读《Apache Dubbo微服务开发从入门到精通》—— 五、 动态配置规则

五、 动态配置规则

 

动态配置规则ConfigurationRule是Dubbo设计的在无需重启应用的情况下,动态调整RPC调用行为的一种能力,也成为动态覆盖规则,因为它是通过在运行态覆盖Dubbo实例或者Dubbo实例中URL地址的各种参数值,实现改变RPC调用行为的能力。

 

使用动态配置规则,有以下几条关键信息值得注意:

 

设置规则生效过滤条件。配置规则支持一系列的过滤条件,用来限定规则只对符合特定条件的服务、应用或实例才生效。

 

设置规则生效范围。一个rpc服务有服务发起方(消费者)和服务处理方(提供者)两个角色,对某一个服务定义的规则,可以具体到限制是对消费者还是提供者生效。

 

选择规则管理粒度。Dubbo支持从服务和应用两个粒度来管理和下发规则。

 

以下一个应用级别的配置示例,配置生效后,shop-detail应用下提供的所有服务都将启用accesslog,对shop-detail部署的所有实例生效。

 

image.png

 

以下是一个服务级别的配置示例,keyorg.apache.dubbo.samples.UserService和sideconsumer说明这条配置对所有正在消费UserService的Dubbo实例生效,在调用失败后都执行4次重试。match条件进一步限制了消费端的范围,限定为只对应用名为shop-frontend的这个消费端应用生效。

 image.png 

 

1. ConfigurationRule

 

配置规则主体,定义要设置的目标服务或应用、具体的规则配置。具体配置规则configs可以设置多条。

 

image.png

 

2. Config

 

具体的规则配置定义,包含生效端consumer或provider和过滤条件。

 

image.png

 

3. MatchCondition

 

过滤条件,用来设置规则对哪个服务service、应用application、实例address,或者包含哪些参数param的实例生效。

 

Field

Type

Description

Required

address

StringMatch

The instance address matching condition for this config rule to take effect.

 

-xact:“valuefor exact string match

-prefix:“valuefor prefix-based match

-regex:“valuefor RE2 style regex-based match

 

https://github.com/google/re2/wiki/Syntax

No

service

StringMatch (oneof)

The service matching condition for this config rule to take effect. Effective when scope: application is set.

 

-exact:“valuefor exact string match

-prefix:“valuefor prefix-based match

-regex:“valuefor RE2 style regex-based match

 

https://github.com/google/re2/wiki/Syntax

No

application

StringMatch (oneof)

The application matching condition for this config rule to take effect. Effective when scope: service is set.

 

-exact:“valuefor exact string match

-prefix:“valuefor prefix-based match

-regex:“valuefor RE2 style regex-based match

 

https://github.com/google/re2/wiki/Syntax

No

param

ParamCondition[]

The Dubbo url keys and values matching condition for this config rule to take effect.

No

 

4. ParamCondition

 

定义实例参数param过滤条件,对应到Dubbo URL地址参数。

 

image.png

 

5. StringMatch

 

Field

Type

Description

Required

exact

string (oneof)

exact string match

No

prefix

string (oneof)

prefix-based match

No

regex

string (oneof)

RE2 style regex-based match

https://github.com/google/re2/wiki/Syntax

No

 


相关文章
|
人工智能 Dubbo 应用服务中间件
使用 Apache Dubbo 释放 DeepSeek R1 的全部潜力
本文介绍了如何利用 Apache Dubbo 的多语言 SDK 充分释放 DeepSeek R1 的全部潜力,助力 AI 开发的高效落地。
613 116
|
Dubbo 安全 应用服务中间件
Apache Dubbo 正式发布 HTTP/3 版本 RPC 协议,弱网效率提升 6 倍
在 Apache Dubbo 3.3.0 版本之后,官方推出了全新升级的 Triple X 协议,全面支持 HTTP/1、HTTP/2 和 HTTP/3 协议。本文将围绕 Triple 协议对 HTTP/3 的支持进行详细阐述,包括其设计目标、实际应用案例、性能测试结果以及源码架构分析等内容。
1356 129
|
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 的全新升级,突破了以往局限,实现了对南北向与东西向流量的全面支持,并提升了对云原生架构的友好性。
654 120
|
Dubbo 应用服务中间件 Apache
Star 4w+,Apache Dubbo 3.3 全新发布,Triple X 领衔,开启微服务通信新时代
Star 4w+,Apache Dubbo 3.3 全新发布,Triple X 领衔,开启微服务通信新时代
308 0
|
存储 分布式计算 物联网
Apache IoTDB进行IoT相关开发实践
当今社会,物联网技术的发展带来了许多繁琐的挑战,尤其是在数据库管理系统领域,比如实时整合海量数据、处理流中的事件以及处理数据的安全性。例如,应用于智能城市的基于物联网的交通传感器可以实时生成大量的交通数据。据估计,未来5年,物联网设备的数量将达数万亿。物联网产生大量的数据,包括流数据、时间序列数据、RFID数据、传感数据等。要有效地管理这些数据,就需要使用数据库。数据库在充分处理物联网数据方面扮演着非常重要的角色。因此,适当的数据库与适当的平台同等重要。由于物联网在世界上不同的环境中运行,选择合适的数据库变得非常重要。 原创文字,IoTDB 社区可进行使用与传播 一、什么是IoTDB 我
739 9
Apache IoTDB进行IoT相关开发实践
|
存储 分布式计算 物联网
Apache IoTDB进行IoT相关开发实践
IoTDB是专为物联网(IoT)设计的开源时间序列数据库,提供数据收集、存储、管理和分析。它支持高效的数据写入、查询,适用于处理大规模物联网数据,包括流数据、时间序列等。IoTDB采用轻量级架构,可与Hadoop和Spark集成,支持多种存储策略,确保数据安全和高可用性。此外,它还具有InfluxDB协议适配器,允许无缝迁移和兼容InfluxDB的API和查询语法,简化物联网项目的数据管理。随着物联网设备数量的快速增长,选择适合的数据库如IoTDB对于数据管理和分析至关重要。
929 12
|
Java 持续交付 项目管理
Maven是一款基于Apache许可的项目管理和构建自动化工具,在Java开发中极为流行。
Maven是一款基于Apache许可的项目管理和构建自动化工具,在Java开发中极为流行。它采用项目对象模型(POM)来描述项目,简化构建流程。Maven提供依赖管理、标准构建生命周期、插件扩展等功能,支持多模块项目及版本控制。在Java Web开发中,Maven能够自动生成项目结构、管理依赖、自动化构建流程并运行多种插件任务,如代码质量检查和单元测试。遵循Maven的最佳实践,结合持续集成工具,可以显著提升开发效率和项目质量。
388 1
|
开发框架 Dubbo 应用服务中间件
微服务开发框架-----Apache Dubbo
这篇文章介绍了Apache Dubbo微服务开发框架,它提供RPC通信和微服务治理能力,支持服务发现、负载均衡和流量治理等功能,并强调了Dubbo在微服务规模化实践和企业级治理方面的优势。
微服务开发框架-----Apache Dubbo
|
监控 Kubernetes Cloud Native
云原生架构下的微服务治理之道
【7月更文挑战第30天】在数字化转型的浪潮中,企业级应用正迅速向云原生架构迁移。本文将深入探讨云原生环境下微服务治理的最佳实践,包括服务发现、配置管理、流量控制等关键策略,并结合实例分析如何在保障系统弹性、可维护性的同时,优化资源利用效率和加快业务创新速度。
241 2
|
存储 分布式计算 物联网
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,
730 0
Apache IoTDB进行IoT相关开发实践

热门文章

最新文章

推荐镜像

更多