配置同可用区优先路由

在服务消费者调用服务提供者时,如果您的服务提供者是跨可用区部署的,那么您可以为服务提供者开启同可用区优先路由功能。该功能可以优先调用同可用区的服务提供者,从而避免服务之间跨可用区调用导致的网络延迟问题,缩短HTTP响应时间。Spring Cloud、Dubbo和HSF应用都支持该功能。本文介绍如何为K8s集群中的服务提供者开启同可用区优先调用。

背景信息

当应用部署在多个可用区时,应用之间互相调用会出现跨可用区的情况。例如下图中可用区1的A应用调用可用区2的B应用,即节点A1上的应用调用节点B2上的应用。跨可用区调用会出现网络延时增加,并延长HTTP响应时间。调用链路如下图所示:

image

当应用服务开启同可用区优先后,消费者应用会优先调用同可用区的服务提供者,可以避免跨可用区带来的网络延时,从而缩短HTTP的响应时间。调用链路如下图所示:

image

如果当前可用区没有服务提供者时,服务调用者会调用到其他可用区的服务提供者。

开启同可用区优先

您可以在EDAS控制台执行以下操作,为服务提供者开启同可用区优先功能。

  1. 登录EDAS控制台

  2. 在左侧导航栏,单击应用管理 > 应用列表,在顶部菜单栏选择地域并在页面上方选择微服务空间,在集群类型下拉列表中选择K8s集群,然后单击目标应用名称

  3. 应用总览页面的服务治理区域,单击同可用区优先右侧的开启

  4. 应用总览页面的服务治理区域,单击同可用区优先右侧的编辑图标并设置阈值

    说明
    • 只有当前可用区实例数量占实例总数的比例大于所设置的阈值时,同可用区优先调用策略才会生效。阈值填写范围为0~100。

    • 需要配置JVM启动参数-Dmse.enable=true,配置才能生效。具体操作,请参见配置Java启动参数