dubbo2.7 57 配置规则
dubbo2.7 57 配置规则
程序员朱永胜有的时候博客内容会有变动,首发博客是最新的,其他博客地址可能会未同步, 认准
https://blog.zysicyj.top
全网最细面试题手册,支持艾宾浩斯记忆法。这是一份最全面、最详细、最高质量的 java 面试题,不建议你死记硬背,只要每天复习一遍,有个大概印象就行了。https://store.amazingmemo.com/chapterDetail/1685324709017001`
在 Dubbo 中配置应用级治理规则和服务级治理规则
背景
覆盖规则是 Dubbo 设计的在无需重启应用的情况下,动态调整 RPC 调用行为的一种能力。2.7.0 版本开始,支持从 服务 和应用 两个粒度来调整动态配置。
示例
请在服务治理控制台查看或修改覆盖规则。
应用粒度
1 | # 将应用 demo(key:demo)在 20880 端口上提供(side:provider)的所有服务(scope:application)的权重修改为 1000(weight:1000)。 |
服务粒度
1 | # 所有消费(side:consumer)DemoService 服务(key:org.apache.dubbo.samples.governance.api.DemoService)的应用实例(addresses:[0.0.0.0]),超时时间修改为 6000ms |
规则详解
配置模板
1 |
|
其中:
configVersion
表示 dubbo 的版本scope
表示配置作用范围,分别是应用(application)或服务(service)粒度。必填。key
指定规则体作用在哪个服务或应用。必填。- scope=service 时,key 取值为[{group}:]{service}[:{version}] 的组合
- scope=application 时,key 取值为 application 名称
enabled=true
覆盖规则是否生效,可不填,缺省生效。configs
定义具体的覆盖规则内容,可以指定 n(n>=1)个规则体。必填。- side,
- applications
- services
- parameters
- addresses
- providerAddresses
对于绝大多数配置场景,只需要理清楚以下问题基本就知道配置该怎么写了:
要修改整个应用的配置还是某个服务的配置。
- 应用:
scope: application, key: app-name
(还可使用services
指定某几个服务)。 - 服务:
scope: service, key:group+service+version
。
- 应用:
修改是作用到消费者端还是提供者端。
- 消费者:
side: consumer
,作用到消费端时(你还可以进一步使用providerAddress
,applications
选定特定的提供者示例或应用)。 - 提供者:
side: provider
。
- 消费者:
配置是否只对某几个特定实例生效。
- 所有实例:
addresses: ["0.0.0.0"]
或addresses: ["0.0.0.0:*"]
具体由 side 值决定。 - 指定实例:
addersses[实例地址列表]
。
- 所有实例:
要修改的属性是哪个。
示例
禁用提供者:(通常用于临时踢除某台提供者机器,相似的,禁止消费者访问请使用路由规则)
1
2
3
4
5
6
7
8
9
10
11
12
configVersion: v2.7
scope: application
key: demo-provider
enabled: true
configs:
- addresses: ["10.20.153.10:20880"]
side: provider
parameters:
disabled: true
...调整权重:(通常用于容量评估,缺省权重为 200)
1
2
3
4
5
6
7
8
9
10
11
12
configVersion: v2.7
scope: application
key: demo-provider
enabled: true
configs:
- addresses: ["10.20.153.10:20880"]
side: provider
parameters:
weight: 200
...调整负载均衡策略:(缺省负载均衡策略为 random)
1
2
3
4
5
6
7
8
9
10
11
configVersion: v2.7
scope: application
key: demo-consumer
enabled: true
configs:
- side: consumer
parameters:
loadbalance: random
...服务降级:(通常用于临时屏蔽某个出错的非关键服务)
1
2
3
4
5
6
7
8
9
10
11
configVersion: v2.7
scope: service
key: org.apache.dubbo.samples.governance.api.DemoService
enabled: true
configs:
- side: consumer
parameters:
force: return null
...