流量控制环境是灰度发布的核心,您需要在流量控制环境中进行多个应用的流量控制。本文介绍如何创建流量控制环境。

前提条件

设置环境基本信息

HSF应用需要使用EDAS-Container 3.5.3及以上版本才能设置HSF流量规则。

  1. 登录EDAS控制台
  2. 在左侧导航栏选择微服务治理 > HSF,然后在服务查询页面的左侧导航栏单击全链路流量控制
  3. 全链路流量控制页面右上角单击新建环境
  4. 基本信息配置向导页面设置微服务空间(包括地域微服务空间)、流量控制环境名称流量控制标识、和流量控制环境描述,然后单击下一步
  5. 设置入口流量规则配置向导页面选择入口应用并配置流量规则,然后单击下一步

    入口流量规则参数说明:

    参数 说明
    入口应用 在下拉菜单中按规划选择该流量控制环境的入口应用。
    协议类型 根据实际需求选择协议类型,HTTP或HSF。
    若协议类型选择HTTP,则配置以下参数:
    path 输入访问资源的路径。
    条件模式 如果配置了多条规则,则要设置这些规则生效的条件。包括满足所有条件或满足条件之一。
    条件列表 参数类型 包括根据Cookie值、根据HTTP Header值和根据URL参数值 。
    参数 输入参数,不能超过64个字符。关于书写规范和样例的相关内容,请参见流控规则参数说明
    条件 选择条件,包括按100取模和白名单两种方式。
    输入参数取模或列表的值。
    若协议类型选择HSF,则配置以下参数:
    选择服务 选择入口应用中的服务。例如格式为:com.alibaba.edas.demo.api.DempSevice:1.0.0(服务分组名称)
    方法 选择入口应用中的方法。例如格式为:echoTime(java.lang.String, java.util.List<java.lang.Integer>)
    条件模式 如果配置了多条规则,则要设置这些规则生效的条件。包括满足所有条件或满足条件之一。
    条件列表 参数 选择方法中的参数。关于HSF流量参数规则的相关内容,请参见流控规则参数说明
    参数值获取表达式 参数表达式用以获取参数的某个属性,例如:
    • 空:表示直接取当前参数的值。
    • .name:表示取参数的name属性,相当于args0.getName()。
    • .isEnabled():表示取参数的enabled属性,相当于args0.isEnabled()。
    • [0]:表示当前参数应是一个数组,取数组的第一个值,相当于args0[0],注意前面没有“.”。
    • .get(0):表示当前参数应是一个List,取List的第一个值,相当于args0.get(0)。
    • .get("key"):表示当前参数是一个Map,获取key对应的值,相当于args0.get("key")。
    条件 选择支持的条件。
    • =:支持字符串、数字、Boolean和Char的比较。
    • !=:支持字符串、数字、Boolean和Char的比较。
    • >:支持数字的比较。
    • >=:支持数字的比较。
    • <:支持数字的比较。
    • <=:支持数字的比较。
    输入参数取值。
    说明
    • 如果需要设置多个规则,单击添加规则条件
    • 如果需要创建多个入口流量规则,单击创建流量规则
  6. 选择应用配置向导页面按规划选中应用,单击>添加到已选应用列表中,选中应用实例分组,单击下一步
    说明
    • 选择应用列表中某些应用不可勾选,且应用名右侧有InfoIcon标识,则表示该应用只有默认分组,而默认分组不能添加到流量控制环境中。
    • 已选应用列表中某些应用实例分组右侧同样有InfoIcon标识,则表示该分组下没有实例,需要添加实例。具体操作,请参见添加实例
  7. 创建完成页面检查流量控制环境相关设置,确认无误后,单击提交

启动流量控制环境

流量控制环境创建完成后,开启入口流量即可启动流量控制环境中的入口应用的流控规则。具体步骤如下:

  1. 返回全链路流量控制页面。
  2. 选择流量控制环境所在的地域微服务空间
  3. 找到创建完成的流量控制环境,单击入口流量右侧的按钮。

结果验证

设置并启用流量控制环境后,您可以通过监控灰度流量来验证是否符合预期。相关内容,请参见监控灰度流量