如何解决如何实现具有持久连接的有状态应用程序的负载平衡 - Envoy 和 Rsocket
我正在研究服务器和客户端的架构模型,它们都通过 Rsocket 连接进行连接。我使用 Envoy 为服务器配置了一个负载均衡器。请求流程如下所示,
假设我有 3 个服务器实例和 1 个代理实例。
- 代理将使用其标头连接到任何一台服务器(使用 Envoy 中的 MAGLEV 负载平衡策略)。
- 所有后续请求都应定向到代理连接所在的特定服务器。
但是,如果我放大/缩小服务器实例,标头哈希会重新散列,后续请求将重定向到不同的服务器实例,其中代理连接(以前连接的 - 仍然驻留在旧服务器实例中)不存在新的服务器实例。
因此,一种可能的解决方案是通过识别保存代理连接的正确服务器实例(需要对服务器代码进行一些更改)来在服务器之间重定向。但我不太确定这是最好的解决方案。所以,我想知道我是否可以使用任何 Envoy 配置来解决这个问题,或者我可以实施什么逻辑来缓解这个问题。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。