当您配置了同可用区优先后,Consumer服务调用Provider服务时,会优先调用与Consumer服务同一可用区的Provider服务。本文介绍同可用区优先的使用限制和使用场景,以及如何在SAE侧配置同可用区优先。
功能介绍
同可用区(Availability Zones)优先路由是一种负载均衡策略,适用于服务部署在多个可用区的情况。在这种策略下,上游服务会优先调用同一可用区内的下游服务,确保流量尽可能在同一个可用区内流转,以此减少跨可用区的数据传输延迟,进而提升系统的性能和响应速度。
使用说明
同可用区优先支持Dubbo服务和Spring Cloud服务。
为保障业务可用性,同可用区Provider节点数占Provider总节点数超过设定阈值时,才会按照同可用区规则调用。
例如,可用区A的Consumer调用Provider时,阈值设置为20%,并开启同可用区优先,Provider共10台机器。
若可用区A的Provider节点数为3,只会调用可用区A的Provider节点。
若可用区A的Provider节点数为1,则会回退随机调用模式。
使用场景
当应用部署在多个机房时,会存在应用之间跨机房互相调用的情况,如图所示:
而Consumer跨机房调用Provider服务会增加网络延时,最终会增加HTTP响应时间。
开启同可用区优先后,Consumer会优先调用同机房的Provider服务,避免跨可用区带来的网络延时,从而减少HTTP的响应时间。如图所示:
前提条件
已开通MSE微服务治理功能。具体操作,请参见开通MSE微服务治理。
已创建一个Consumer应用和两个Provider应用。具体操作,请参见应用部署。
说明建议为每个应用配置一个独立的可用区,通过在不同的可用区部署多个应用来实现高可用性和容灾能力。
以下为创建测试应用的说明,在实际的生产环境中,请根据具体的业务场景进行部署。
本文以SAE控制台提供的Demo镜像为例进行演示说明。
两个Provider应用部署在不同的可用区,Consumer应用部署在与其中一个Provider应用相同的可用区。
步骤一:开启微服务治理功能
Consumer应用和所有的Provider应用都需要开启微服务治理功能。
登录SAE控制台,在左侧导航选择 ,选择目标地域和目标命名空间,然后单击目标实例名称。
进入目标应用后,在左侧导航栏选择
,在流量治理页面开启微服务治理功能。重要开启微服务治理功能,目标应用下的所有实例将会进行重启,请在业务低峰期进行此操作。
开启过程需要1~2分钟,请您耐心等待。
步骤二:为Provider应用配置同可用区优先功能
Consumer应用和所有的Provider应用都需要配置同可用区优先功能。
进Provider应用的流量治理页面,单击同可用区优先页签。
在同可用区优先页签,配置以下信息。
单击阈值或开启同可用区优先右侧的编辑。
配置阈值范围并开启同可用区优先,然后单击确定。
说明当前可用区内的机器数量占总机器数量的比例超过设定的阈值时,系统才会调用该可用区的Provider应用。阈值填写范围为0~100。
可选:关闭同可用区优先功能。
在Provider应用的同可用区优先页签,单击开启同可用区优先右侧的编辑,关闭同可用区优先功能并单击确定。
步骤三:结果验证
使用PTS工具对Consumer应用进行压测,验证开启同可用区优先和不开启同可用区优先功能的情况下,访问时间是否存在差异。
未开启可用区优先功能时进行压测
登录性能测试服务 PTS 控制台,在概览页面输入公网IP(格式为:
http://公网IP/consumer-echo/hello
),然后单击压测。在弹出的压测配置面板,输入每秒请求数(RPS),然后勾选确认本次压测已获得准许并遵守当地法律并单击启动压测。
压测结束后,查看网络延迟时间。
说明经过PTS压测,显示Consumer应用调用Provider应用时,网络延迟时间为2.49秒左右。
开启可用区优先功能后进行压测
登录性能测试服务 PTS 控制台,在概览页面输入公网IP(格式为:
http://公网IP//consumer-echo/hello
),然后单击压测。在弹出的压测配置面板,输入每秒请求数(RPS),然后勾选确认本次压测已获得准许并遵守当地法律并单击启动压测。
压测结束后,查看网络延迟时间。
说明经过PTS压测,显示Consumer应用调用Provider应用时,网络延迟时间为2.45秒左右。
说明当开启同可用区功能后,Consumer应用调用Provider应用时网络延迟将会减少40毫秒左右。