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

本文涉及的产品
云原生网关 MSE Higress,422元/月
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
性能测试 PTS,5000VUM额度
简介: 带你读《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

 


相关文章
|
6月前
|
Kubernetes Java 测试技术
无忧微服务:如何实现大流量下新版本的发布自由
本文讨论了微服务上云过程中的稳定性挑战,特别是变更引起的生产故障。阿里云MSE(微服务引擎)提供了一种全链路无损发布方案,旨在消除变更风险,实现白天流量高峰时的安全发布。
766 17
|
29天前
|
Dubbo 应用服务中间件 Apache
Dubbo 应用切换 ZooKeeper 注册中心实例,流量无损迁移
如果 Dubbo 应用使用 ZooKeeper 作为注册中心,现在需要切换到新的 ZooKeeper 实例,如何做到流量无损?
19 4
|
1月前
|
消息中间件 缓存 Java
亿级流量电商平台微服务架构详解
【10月更文挑战第2天】构建一个能够处理亿级流量的电商平台微服务架构是一个庞大且复杂的任务,这通常涉及到多个微服务、数据库分库分表、缓存策略、消息队列、负载均衡、熔断降级、分布式事务等一系列高级技术和架构模式。
92 3
|
2月前
|
Apache
多应用模式下,忽略项目的入口文件,重写Apache规则
本文介绍了在多应用模式下,如何通过编辑Apache的.htaccess文件来重写URL规则,从而实现忽略项目入口文件index.php进行访问的方法。
|
5月前
|
XML 监控 Dubbo
Dubbo怎么配置监控中心
**摘要:** 本文介绍了如何配置Dubbo的简单监控中心。首先,通过添加`<dubbo:monitor protocol="registry" />`到配置文件启用监控。接着,修改`dubbo.properties`设置Zookeeper地址。启动监控中心,服务提供者和消费者需添加`monitorEnabled="true"`以开启监控功能。配置完成后,监控中心的Web界面能展示服务状态和性能指标,助力开发者和运维人员实时监控服务健康。
|
6月前
|
Dubbo Cloud Native 应用服务中间件
【Dubbo3 终极特性】「云原生三中心架构」带你探索 Dubbo3 体系下的配置中心和元数据中心、注册中心的原理及开发实战(中)
【Dubbo3 终极特性】「云原生三中心架构」带你探索 Dubbo3 体系下的配置中心和元数据中心、注册中心的原理及开发实战(中)
194 1
|
6月前
|
负载均衡 算法 微服务
常见的微服务流量治理策略
常见的微服务流量治理策略
437 3
|
6月前
|
Cloud Native Dubbo 应用服务中间件
Apache Dubbo 下一代云原生微服务挑战赛启动报名!五大赛题 50 万奖金池
Apache Dubbo 下一代云原生微服务挑战赛启动报名!五大赛题 50 万奖金池
|
6月前
|
Kubernetes Dubbo 应用服务中间件
【Dubbo3终极特性】「流量治理体系」一文教你如何搭建Dubbo3的控制台服务Dubbo-Admin
【Dubbo3终极特性】「流量治理体系」一文教你如何搭建Dubbo3的控制台服务Dubbo-Admin
334 0
|
6月前
|
Docker 容器
在docker中安装dubbo-admin,并且阿里云服务器配置
在docker中安装dubbo-admin,并且阿里云服务器配置
300 1

推荐镜像

更多
下一篇
无影云桌面