配置同可用区优先

当您配置了同可用区优先后,Consumer服务调用Provider服务时,会优先调用与Consumer服务同一可用区的Provider服务。本文介绍同可用区优先的使用限制和使用场景,以及如何在SAE侧配置同可用区优先。

功能介绍

同可用区(Availability Zones)优先路由是一种负载均衡策略,适用于服务部署在多个可用区的情况。在这种策略下,上游服务会优先调用同一可用区内的下游服务,确保流量尽可能在同一个可用区内流转,以此减少跨可用区的数据传输延迟,进而提升系统的性能和响应速度。

使用说明

  • 同可用区优先支持Dubbo服务和Spring Cloud服务。

  • 为保障业务可用性,同可用区Provider节点数占Provider总节点数超过设定阈值时,才会按照同可用区规则调用。

    例如,可用区AConsumer调用Provider时,阈值设置为20%,并开启同可用区优先,Provider10台机器。

    • 若可用区AProvider节点数为3,只会调用可用区AProvider节点。

    • 若可用区AProvider节点数为1,则会回退随机调用模式。

使用场景

当应用部署在多个机房时,会存在应用之间跨机房互相调用的情况,如图所示:跨AZ

Consumer跨机房调用Provider服务会增加网络延时,最终会增加HTTP响应时间。

开启同可用区优先后,Consumer会优先调用同机房的Provider服务,避免跨可用区带来的网络延时,从而减少HTTP的响应时间。如图所示:跨AZ

前提条件

  • 已开通MSE微服务治理功能。具体操作,请参见开通MSE微服务治理

  • 已创建一个Consumer应用和两个Provider应用。具体操作,请参见应用部署

    说明
    • 建议为每个应用配置一个独立的可用区,通过在不同的可用区部署多个应用来实现高可用性和容灾能力。

    • 以下为创建测试应用的说明,在实际的生产环境中,请根据具体的业务场景进行部署。

      • 本文以SAE控制台提供的Demo镜像为例进行演示说明。

      • 两个Provider应用部署在不同的可用区,Consumer应用部署在与其中一个Provider应用相同的可用区。

步骤一:开启微服务治理功能

重要

Consumer应用和所有的Provider应用都需要开启微服务治理功能。

  1. 登录SAE控制台,在左侧导航选择应用管理 > 应用列表,选择目标地域和目标命名空间,然后单击目标实例名称。

    3z0SlXVQfr

  2. 进入目标应用后,在左侧导航栏选择微服务治理 > 流量治理,在流量治理页面开启微服务治理功能。

    重要

    开启微服务治理功能,目标应用下的所有实例将会进行重启,请在业务低峰期进行此操作。

    z4rbGtP8Qu

    开启过程需要1~2分钟,请您耐心等待。

步骤二:为Provider应用配置同可用区优先功能

重要

Consumer应用和所有的Provider应用都需要配置同可用区优先功能。

  1. Provider应用的流量治理页面,单击同可用区优先页签。

    WFGG6bCAc9

  2. 同可用区优先页签,配置以下信息。

    1. 单击阈值开启同可用区优先右侧的编辑

    2. 配置阈值范围并开启同可用区优先,然后单击确定

      说明

      当前可用区内的机器数量占总机器数量的比例超过设定的阈值时,系统才会调用该可用区的Provider应用。阈值填写范围为0~100。

      R0RUvaExlw

  3. 可选:关闭同可用区优先功能。

    Provider应用的同可用区优先页签,单击开启同可用区优先右侧的编辑,关闭同可用区优先功能并单击确定

    e5ZZaLc1nu

步骤三:结果验证

使用PTS工具对Consumer应用进行压测,验证开启同可用区优先和不开启同可用区优先功能的情况下,访问时间是否存在差异。

未开启可用区优先功能时进行压测

  1. 登录性能测试服务 PTS 控制台,在概览页面输入公网IP(格式为:http://公网IP/consumer-echo/hello),然后单击压测

    SorhA9FLRJ

  2. 在弹出的压测配置面板,输入每秒请求数(RPS),然后勾选确认本次压测已获得准许并遵守当地法律并单击启动压测

    image

  3. 压测结束后,查看网络延迟时间。

    b03acd94a614aabdbad90af21ab6ad35

    说明

    经过PTS压测,显示Consumer应用调用Provider应用时,网络延迟时间为2.49秒左右。

开启可用区优先功能后进行压测

  1. 登录性能测试服务 PTS 控制台,在概览页面输入公网IP(格式为:http://公网IP//consumer-echo/hello),然后单击压测

    image

  2. 在弹出的压测配置面板,输入每秒请求数(RPS),然后勾选确认本次压测已获得准许并遵守当地法律并单击启动压测

    image

  3. 压测结束后,查看网络延迟时间。

    375adfded3cb393a1c42966432946744

    说明

    经过PTS压测,显示Consumer应用调用Provider应用时,网络延迟时间为2.45秒左右。

    说明当开启同可用区功能后,Consumer应用调用Provider应用时网络延迟将会减少40毫秒左右。