应用管理与运维平台 ServiceStage应用管理与运维平台 ServiceStage

更新时间:2021/07/27 GMT+08:00
分享

微服务引擎2.0微服务治理

业务场景

使用微服务引擎2.0治理能力,动态调整业务策略。

用户故事

对于多数服务治理功能,是在业务运行过程中结合运行状况自动发生的,微服务引擎2.0提供的治理功能能够保证业务的可靠运行。例如,在业务出现随机故障的情况下,进行自动的重试。还有一些业务场景,需要根据业务需要,动态调整系统的行为。

限流:本章节以天气预报应用为例,以访问流量洪峰作为演示场景,通过微服务治理限制用户对于辅助功能,例如天气湿度查询的流量,保障天气预报应用在高峰期能够正常、稳定的提供基本的天气报告功能。

微服务引擎2.0提供了基于动态配置的流量特征治理,将服务治理过程分为两个步骤:架构师根据系统结构规划业务场景;运维工程师配置业务的治理策略。

规划业务场景

天气预报的业务场景比较简单,可以将其定义为两个业务场景:查询天气预报和查询额外天气指数。

  1. 登录ServiceStage控制台,选择微服务 CSE > 微服务治理
  2. 在页面上方“微服务引擎”下拉列表,选择创建环境时选择的微服务引擎。
  3. 选择业务场景 > 创建业务场景,参考下表设置参数。

    • “查询天气预报"业务场景

      参数名称

      参数说明

      业务场景名称

      输入业务场景名称 :“查询天气预报”。

      所属环境

      选择“<空>”。

      所属应用

      选择创建应用时输入的应用名称(例如weathermap)。

      匹配规则

      单击“添加匹配规则”,设置流量标记:

      • Method:选择GET。
      • Path:单击“添加Path规则”,设置流量请求URI所包含的特征。选择“prefix”,输入“/forecast”。
    • “查询额外天气指数"业务场景

      参数名称

      参数说明

      业务场景名称

      输入业务场景名称:“查询额外天气指数”。

      所属环境

      选择“<空>”。

      所属应用

      选择创建应用时输入的应用名称(例如weathermap)。

      匹配规则

      单击“添加匹配规则”,设置流量标记:

      • Method:选择GET。
      • Path:单击“添加Path规则”,设置流量请求URI所包含的特征。选择“prefix”,输入“/weather”。

  4. 单击“配置管理”,如果配置项列表中有如下表所示的配置项前缀的配置项,则业务场景创建成功。

    配置项前缀

    说明

    servicecomb.matchGroup.*

    业务场景的Key值,前缀后面紧跟业务场景的标识。该值由具体的治理业务场景定义。多个业务场景有多个Key值。

配置治理规则

查询天气预报是主要业务,查询额外天气指数是次要业务。在系统规划的时候,需要为主要业务分配更多的处理资源,为次要业务分配较少的处理资源,限制次要业务的流量。同时为了让超过系统处理能力的流量不至于导致系统崩溃,需要限制主要业务的最大流量。

  1. 选择治理策略 > 创建治理策略 > 选择治理方式
  2. 治理方式选择“限流”,单击“创建治理”,设置参数。

    • 限制查询额外天气指数的流量

      参数名称

      参数说明

      治理策略名称

      输入治理策略的名称:“限制查询额外天气指数的流量”。

      业务场景

      单击“选择业务环境”,选择已创建好的业务场景“查询额外天气指数”。

      QPS

      设置为1。

    • 限制查询天气预报的流量

      参数名称

      参数说明

      治理策略名称

      输入治理策略的名称:“限制查询天气预报的流量”。

      业务场景

      单击“选择业务环境”,选择已创建好的业务场景“查询天气预报”。

      QPS

      设置为1000。

  3. 单击“创建”,治理策略创建完成。
  4. 单击“配置管理”,查看限流配置是否成功。

    如果配置项列表中有如下表所示的配置项前缀的配置项,说明限流配置已添加成功。

    配置项前缀

    参数说明

    servicecomb.rateLimiting.*

    治理策略的key值,前缀后面紧跟业务场景的标识,值为具体的治理策略。

  5. 访问应用,快速刷新天气预报页面。

    • 图1所示,未限流的情况下,天气指数会显示正确的值,例如湿度显示59%。
    • 图2所示,限流情况下,由于查询不到额外天气指数,天气指数会显示默认值,例如湿度显示0%。
      图1 未限流
      图2 限流

分享:

    相关文档

    相关产品