关于后端:基于-Dubbo-Admin-实现流量灰度

41次阅读

共计 1833 个字符,预计需要花费 5 分钟才能阅读完成。

Dubbo 提供流量灰度的服务治理能力,能够在无需重启利用的状况下,配置标签路由规定和条件路由实现灰度公布。

Dubbo 能够通过 XML 配置,注解配置,动静配置实现流量灰度,这里次要介绍动静配置的形式,其余配置形式请参考旧文档配置

开始之前

请确保胜利运行 Dubbo-Admin

背景信息

在产品开发中会遇到需要变动、版本迭代的场景,为了兼顾需要变动和零碎稳固,公布要尽可能平滑,影响人群要由少到多,一旦有问题马上回滚。Dubbo-Admin 提供了动静的流量灰度能力,可能帮忙您对新服务作标,服务平滑公布,进步服务的稳固和可用性。

操作步骤

条件路由

  1. 登录 Dubbo-Admin 控制台
  2. 在左侧导航栏抉择服务治理 > 条件路由。
  3. 点击创立按钮,在创立新路由规定面板中,填写规定内容,而后单击保留。

规定详解

配置模板
---
scope: application/service
force: true
runtime: true
enabled: true
key: app-name/group+service+version
conditions:
  - application=app1 => address=*:20880
  - method=sayHello => address=*:20880

对于流量灰度场景,只须要理分明以下问题根本就晓得配置该怎么写了:

  1. 要批改消费者利用的配置还是某个服务的配置。

    • 利用:scope: application, key: app-name(还可应用 services 指定某几个服务)。
    • 服务:scope: service, key:group+service+version
  2. 当路由后果为空,是否强制返回。

    • force=false: 当路由后果为空,降级申请 tag 为空的提供者。
    • force=true: 当路由后果为空,间接返回异样。
  3. 路由规定的优先级

    • priority=1: 路由规定的优先级,用于排序,优先级越大越靠前执行,可不填,缺省为 0。
  4. 配置是否只对某几个特定实例失效。

    • 所有实例:addresses: ["0.0.0.0"] addresses: ["0.0.0.0:*"] 具体由 side 值决定。
    • 指定实例:addersses[实例地址列表]
  5. 要批改的条件规定。

    • => 之前的为消费者匹配条件,所有参数和消费者的 URL 进行比照,当消费者满足匹配条件时,对该消费者执行前面的过滤规定。
    • => 之后为提供者地址列表的过滤条件,所有参数和提供者的 URL 进行比照,消费者最终只拿到过滤后的地址列表。
    • 如果匹配条件为空,示意对所有生产方利用,如:=> host != 10.20.153.11
    • 如果过滤条件为空,示意禁止拜访,如:host = 10.20.153.10 =>

标签路由

  1. 登录 Dubbo-Admin 控制台
  2. 在左侧导航栏抉择服务治理 > 标签路由。
  3. 点击创立按钮,在创立新标签规定面板中,填写规定内容,而后单击保留。

规定详解

配置模板
---
  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"]
 ...

对于流量灰度场景,只须要理分明以下问题根本就晓得配置该怎么写了:

  1. 要批改服务所属提供者利用的配置。

    • 利用:scope: application, key: app-name(还可应用 services 指定某几个服务)。
  2. 当路由后果为空,是否强制返回。

    • force=false: 当路由后果为空,降级申请 tag 为空的提供者。
    • force=true: 当路由后果为空,间接返回异样。
  3. 路由规定的优先级

    • priority=1: 路由规定的优先级,用于排序,优先级越大越靠前执行,可不填,缺省为 0。
  4. 配置是否只对某几个特定实例失效。

    • 所有实例:addresses: ["0.0.0.0"] addresses: ["0.0.0.0:*"] 具体由 side 值决定。
    • 指定实例:addersses[实例地址列表]
  5. 要批改的标签名。

后果验证

抉择和流量灰度配置相干的利用,触发该调用验证。

原文首于 Dubbo 官网:https://cn.dubbo.apache.org/z…
欢送在 https://github.com/apache/dubbo 给 Dubbo Star。
搜寻关注官网微信公众号:Apache Dubbo,理解更多业界最新动静,把握大厂面试必备 Dubbo 技能

正文完
 0