envoyproxy / envoy

Cloud-native high-performance edge/middle/service proxy
https://www.envoyproxy.io
Apache License 2.0
25.07k stars 4.82k forks source link

Does zone aware routing consider weight in both source and destination? #37275

Open cqi1217 opened 1 day ago

cqi1217 commented 1 day ago

Title: Does zone aware routing consider weight in both source and destination?

Description:

I use envoy in source cluster to proxy traffic to destination cluster. There are 3 hosts in both source cluster and destination cluster and distributed in 3AZ. I enabled zone aware routing in source cluster, it works well, the source host will only send traffic to the destination host in the same AZ.

AZ1: Src1(weight 100) -> Des1(weight 100) AZ2: Src2(weight 100) -> Des2(weight 100) AZ3: Src3(weight 100) -> Des3(weight 100)

Now there is a case that the traffic to one of my source host(let's say it's Src1) drops a lot, then Des1 also receives less traffic. I want to rebalance traffic from source cluster to destination cluster, saying Src2 and Src3 should send some cross-AZ traffic to Des1. And I try to reduce the weight of Src1.

AZ1: Src1(weight 20) -> Des1(weight 100) AZ2: Src2(weight 100) -> Des2(weight 100) AZ3: Src3(weight 100) -> Des3(weight 100)

But nothing changed after I update the weight of Src1. Src2 and Src3 still send all traffic to the same AZ. I thought when the source cluster uses zone aware routing, it considers the weight(or traffic distribution) of each host. But seems it is not working like that. I am wondering whether zone aware routing considers the weight in set, or only consider the number of the hosts.

soulxu commented 13 hours ago

cc @alyssawilk