Google负载平衡器如何保持路由的一致性?

时间:2019-10-10 11:28:57

标签: deployment google-cloud-platform load-balancing

我有两个在不同区域(西部和东部)上运行的Google云实例。每个实例都有自己的数据库。我正在使用Google Load balancer基于客户端的IP address路由流量(这是Google负载平衡器在网络负载平衡内部进行的操作)。

例如,鲍勃(Bob)正在向东部地区发出请求,GLB会将请求仅路由到东部地区节点。同样,戴夫(Dave)向西部地区发出请求,GLB会将请求路由到西部地区节点。

场景: 1. Bob刚注册,并将新条目添加到East区域数据库中。 2. Bob尝试获取他的个人资料,但是请求以某种方式到达了West(Bob现在正在使用VPN)区域,并且没有可用信息。

是否可以自定义GLB?如果是,那么我可以通过在负载均衡器上应用一致性哈希(使用userId作为哈希函数)来解决此问题,这将确保来自Bob的请求将始终转到East区域。

1 个答案:

答案 0 :(得分:1)

您可以使用HTTP负载平衡器选项:会话亲和力和客户端IP亲和力。

任何方法都存在细微问题,请仔细阅读文档。对于NAT之后的客户(机场,酒店,星巴克等)来说,最大的问题是。对于NAT后面的所有客户端,它们的公共IP地址是相同的,因此,所有流量都将流到同一后端,以实现基于客户端IP的相似性。我建议使用Cookie。

会话关联性使用客户端IP或生成的Cookie来做出流量决策。这样可以将流量路由到相同的后端。

Session Affinity

客户端IP相似性基于客户端IP地址的哈希将来自相同客户端IP地址的请求定向到相同的后端实例。

Using Client IP Affinity