惊落一身雪 发表于 2022-12-28 20:08:37

基于 Dubbo Admin 实现同机房/区域优先

Dubbo提供动态配置同机房/区域优先的服务治理能力,可以在无需重启应用的情况下,动态配置同机房/区域优先。
Dubbo可以通过XML配置,注解配置,动态配置同机房/区域优先,这里主要介绍动态配置的方式,其他配置方式请参考旧文档配置
开始之前

请确保成功运行Dubbo-Admin
背景信息

当应用部署在多个不同机房/区域的时候,应用之间相互调用会出现跨区域的情况,跨区域调用会增加响应时间。同机房/区域优先是指应用调用服务时,优先调用同机房/区域的服务提供者。Dubbo-Admin提供了动态的同机房/区域优先能力,能够帮助您快速动态配置同机房/区域优先,避免了跨区域带来的网络延时,从而减少了调用的响应时间。
操作步骤

标签路由


[*]登录Dubbo-Admin控制台
[*]在左侧导航栏选择服务治理 > 标签路由。
[*]点击创建按钮,在创建新标签规则面板中,填写规则内容,然后单击保存。
规则详解

配置模板

---
force: false
runtime: true
enabled: true
key: governance-tagrouter-provider
tags:
    - name: tag1
      addresses: ["127.0.0.1:20880"]
    - name: tag2
      addresses: ["127.0.0.1:20881"]
...对于同机房/区域优先场景,只需要理清楚以下问题基本就知道配置该怎么写了:

[*]要修改服务所属提供者应用的配置。

[*]应用:scope: application, key: app-name(还可使用services指定某几个服务)。

[*]当路由结果为空,是否强制返回。

[*]force=false: 当路由结果为空,降级请求tag为空的提供者。
[*]force=true: 当路由结果为空,直接返回异常。

[*]路由规则的优先级

[*]priority=1: 路由规则的优先级,用于排序,优先级越大越靠前执行,可不填,缺省为 0。

[*]配置是否只对某几个特定实例生效。

[*]所有实例:addresses: ["0.0.0.0"] 或addresses: ["0.0.0.0:*"] 具体由side值决定。
[*]指定实例:addersses[实例地址列表]。

[*]要修改的标签名。
结果验证

选择和同机房/区域优先配置相关的应用,触发该调用验证。
原文首于 Dubbo 官网:https://cn.dubbo.apache.org/zh/overview/tasks/traffic-management/zone/
欢迎在 https://github.com/apache/dubbo 给 Dubbo Star。
搜索关注官方微信公众号:Apache Dubbo,了解更多业界最新动态,掌握大厂面试必备 Dubbo 技能

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
页: [1]
查看完整版本: 基于 Dubbo Admin 实现同机房/区域优先