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

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
简介: 带你读《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

 


相关文章
|
1月前
|
SQL Apache HIVE
一文彻底掌握Apache Hudi的主键和分区配置
一文彻底掌握Apache Hudi的主键和分区配置
65 0
|
2月前
|
Java 程序员 API
Springboot-swagger配置(idea社区版2023.1.4+apache-maven-3.9.3-bin)
Springboot-swagger配置(idea社区版2023.1.4+apache-maven-3.9.3-bin)
59 1
|
2月前
|
前端开发 Java 数据库连接
Springboot-MyBatis配置-配置端口号与服务路径(idea社区版2023.1.4+apache-maven-3.9.3-bin)
Springboot-MyBatis配置-配置端口号与服务路径(idea社区版2023.1.4+apache-maven-3.9.3-bin)
33 0
|
1月前
|
安全 Linux Apache
Apache代理服务器搭建和配置
Apache代理服务器搭建和配置
|
4月前
|
Dubbo Java 应用服务中间件
阿里巴巴资深架构师深度解析微服务架构设计之SpringCloud+Dubbo
软件架构是一个包含各种组织的系统组织,这些组件包括Web服务器,应用服务器,数据库,存储,通讯层),它们彼此或和环境存在关系。系统架构的目标是解决利益相关者的关注点。
|
29天前
|
Java fastjson 数据安全/隐私保护
【Dubbo3技术专题】「云原生微服务开发实战」 一同探索和分析研究RPC服务的底层原理和实现
【Dubbo3技术专题】「云原生微服务开发实战」 一同探索和分析研究RPC服务的底层原理和实现
39 0
|
29天前
|
Cloud Native Dubbo 应用服务中间件
【Dubbo3技术专题】拥有新时代的通信协议,引领云原生迈向更高的舞台 | 解密Dubbo3是如何从微服务升华到云原生领域
【Dubbo3技术专题】拥有新时代的通信协议,引领云原生迈向更高的舞台 | 解密Dubbo3是如何从微服务升华到云原生领域
37 1
|
1月前
|
XML Java Apache
Apache Flink自定义 logback xml配置
Apache Flink自定义 logback xml配置
152 0
|
1月前
|
监控 API Apache
实战!配置DataDog监控Apache Hudi应用指标
实战!配置DataDog监控Apache Hudi应用指标
22 0
|
2月前
|
负载均衡 监控 Dubbo
探秘Dubbo Registry:微服务架构的核心【十二】
探秘Dubbo Registry:微服务架构的核心【十二】
24 0

推荐镜像

更多