設定規則
在 Dubbo 中設定應用程式級治理規則和服務級治理規則
覆寫規則
覆寫規則是 Dubbo 設計的一種功能,可以在不重新啟動應用程式的情況下動態調整 RPC 呼叫的行為。從 2.7.0 版本開始,支援在服務和應用程式兩個粒度上進行動態設定調整。
概覽
請在服務治理控制台中檢視或修改覆寫規則。
應用程式粒度
# Change the weight of all services (scope:application) provided by the application demo (key:demo) on port 20880 (side:provider) to 1000 (weight:1000).
---
configVersion: v2.7
scope: application
key: demo
enabled: true
configs:
- addresses: ["0.0.0.0:20880"]
side: provider
parameters:
weight: 1000
...
服務粒度
# All consumer (side:consumer) DemoService service (key:org.apache.dubbo.samples.governance.api.DemoService) application instance (addresses:[0.0.0.0]), the timeout is changed to 6000ms
---
configVersion: v2.7
scope: service
key: org.apache.dubbo.samples.governance.api.DemoService
enabled: true
configs:
- addresses: [0.0.0.0]
side: consumer
parameters:
timeout: 6000
...
規則詳情
設定範本
---
configVersion: v2.7
scope: application/service
key: app-name/group+service+version
enabled: true
configs:
- addresses: ["0.0.0.0"]
providerAddresses: ["1.1.1.1:20880", "2.2.2.2:20881"]
side: consumer
applications/services: []
parameters:
timeout: 1000
cluster: failfase
loadbalance: random
- addresses: ["0.0.0.0:20880"]
side: provider
applications/services: []
parameters:
threadpool: fixed
threads: 200
iothreads: 4
dispatcher: all
weight: 200
...
於
configVersion
表示 Dubbo 版本scope
表示設定的範圍,即應用程式或服務的粒度。必填。key
指定規則主體作用於哪個服務或應用程式。必填。- 當 scope=service 時,key 值為 [{group}:]{service}[:{version}] 的組合
- 當 scope=application 時,key 值為應用程式名稱
enabled=true
覆寫規則是否生效,可以留空,預設生效。configs
定義具體的覆蓋規則內容,可以指定 n (n>=1) 個規則主體。必填。- 端,
- 應用程式
- 服務 - 參數
- 地址
- 提供者地址
對於大多數設定場景,您只需要釐清以下問題即可知道如何編寫設定
您是要修改整個應用程式的設定還是服務的設定。
- 應用程式:
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:*"]
,具體取決於端的值。 - 指定實例:
addersses[實例地址列表]
。
- 所有實例:
要修改的屬性。
範例
1. 禁用提供者:(通常用於暫時剔除一台提供者機器,類似地,請使用路由規則禁止消費者訪問)
---
configVersion: v2.7
scope: application
key: demo-provider
enabled: true
configs:
- addresses: ["10.20.153.10:20880"]
side: provider
parameters:
disabled: true
...
2. 調整權重:(通常用於容量評估,預設權重為 200)
---
configVersion: v2.7
scope: application
key: demo-provider
enabled: true
configs:
- addresses: ["10.20.153.10:20880"]
side: provider
parameters:
weight: 200
...
3. 調整負載均衡策略:(預設負載均衡策略為隨機)
---
configVersion: v2.7
scope: application
key: demo-consumer
enabled: true
configs:
- side: consumer
parameters:
loadbalance: random
...
4. 服務降級:(通常用於暫時遮蔽發生錯誤的非關鍵服務)
```yaml
configVersion: v2.7 scope: service key: org.apache.dubbo.samples.governance.api.DemoService enabled: true configs
- side: consumer parameters: force: return null …
上次修改時間:2023 年 1 月 2 日:增強英文文件 (#1798) (95a9f4f6c1c)