区域感知路由

我们使用以下术语

  • 源/上游集群:Envoy 将来自源集群的请求路由到上游集群。

  • 本地区域:包含源集群和上游集群中一部分主机的同一区域。

  • 区域感知路由:尽力将请求路由到本地区域中的上游集群主机。

在源集群和上游集群中的主机属于不同区域的部署中,Envoy 执行区域感知路由。在执行区域感知路由之前,存在几个先决条件

区域感知路由的目的是将尽可能多的流量发送到上游集群中的本地区域,同时大体上维持所有上游主机上的每秒请求数量相同(取决于负载均衡策略)。

Envoy 尝试将尽可能多的流量推送到本地上游区域,只要大体上维持所有上游主机上的每个主机请求数量相同。Envoy 是否路由到本地区域或执行跨区域路由的决定取决于源集群和上游集群中本地区域中健康主机的百分比。关于源集群和上游集群之间本地区域中的百分比关系,有两种情况

  • 源集群本地区域百分比大于上游集群中的百分比。在这种情况下,我们无法将所有来自源集群本地区域的请求路由到上游集群的本地区域,因为这会导致所有上游主机上的请求不平衡。相反,Envoy 计算可以直接路由到上游集群本地区域的请求百分比。其余的请求跨区域路由。根据区域的剩余容量选择特定区域(该区域将获得一些本地区域流量,并且可能拥有 Envoy 可以用于跨区域流量的额外容量)。

  • 源集群本地区域百分比小于上游集群中的百分比。在这种情况下,上游集群的本地区域可以接收来自源集群本地区域的所有请求,并且还可以拥有一些空间来允许来自源集群其他区域的流量(如果需要)。

请注意,在使用多个优先级时,区域感知路由目前仅支持 P=0。