应用 ELB - 基于一致性哈希的粘性会话

vrtx54234

我在文档中找不到任何内容,但仍在写作以确保我没有错过它。我希望来自不同客户端的所有连接对某个请求参数具有相同的值,最终都在同一个上游主机上。使用 ELB 粘性会话,您可以让相同的客户端连接到相同的主机,但不能保证跨不同的客户端。

这可以通过 Envoy 代理实现,请参阅:https : //www.envoyproxy.io/docs/envoy/latest/intro/arch_overview/upstream/load_balancing/load_balancers#ring-hash

我们已经使用了 ELB,因此如果 ELB 可以实现上述功能,那么我们可以避免在 Envoy 之间引入另一层。

更新:用例 - 在多租户云解决方案中,我们希望来自给定客户帐户的所有客户端都连接到同一上游主机。

克里斯·威廉姆斯

不幸的是,这不可能在 ALB 中执行。

应用程序负载平衡器通过 ELB 粘性会话和基于模式的路由等功能控制主机接收流量的所有逻辑。

如果没有解决方法,那么您可以查看经典负载均衡器,它支持应用程序设置粘性会话 cookie 名称和值。

根据最佳实践,理想情况下您的应用程序应该是无状态的,是否可以考虑重新构建您的应用程序而不是尝试解决问题。我的一些建议是:

  • 使用DynamoDB存储任何基于会话的数据,从基于磁盘的会话中移动(如果您的应用程序就是这样做的)。
  • 任何需要持久化的基于磁盘的文件都可以在所有主机之间共享,无论是在基于 Linux 的主机上使用EFS,还是在 Windows 上使用FSX
  • 中/长期持久化文件可以迁移到 S3,任何很少更改的资产都可以存储在这里,然后您的应用程序可以使用 S3 而不是磁盘。

重要的是要记住,正如我上面所说的,你应该尽可能地保持你的应用程序无状态。假设您的 EC2 实例可能会失败,通过为此做好准备,可以更轻松地恢复。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

ELB缺少“会话粘性”

如何使用AWS应用程序在ELB中生成会话粘性

企业应用最终的一致性

Amazon ELB-粘性会话丢失了cookie

Ansible是否支持新应用ELB?

Weblogic 12.1.3:部署一致性应用程序时出错

目标(后端)应用程序在同一 EC2 的多个端口上运行时的 AWS ELB

通过ELB和HAProxy的ejabberd TCP会话的会话粘性

检查哈希一致性

AWS ELB背后的Laravel应用无法按预期运行

如何保持运行两个Java应用程序的Hibernate缓存一致性?

当应用程序中存在一个生产者和多个消费者时,Apache Kafka如何处理一致性

Zookeeper-Kafka和一致性哈希

在Xamarin.iOS上的应用程序升级期间出现“ UIKit.UIKitThreadAccessException:'UIKit一致性错误:您正在调用UIKit方法...”

考虑到缓存一致性的高性能应用程序的POD数学结构类的C ++选择按值传递还是按引用传递

即使其连接的实例失败,有没有办法保持ELB粘性会话?

将ELB实例附加到“应用程序负载平衡器”

是否需要最新的AWSALB cookie?(AWS ELB应用程序负载均衡器)

如果不使用ELB,如何在AWS ECS Fargate上与我的应用通信?

AWSDeploy重新部署ASP.NET WebAPI ELB应用程序无法正常工作

在AWS ELB Django应用程序中禁用运行状况检查日志记录

TCP模式下基于AWS ELB的HTTP2

ELB是否会提高AWS架构的可用性?

AWS ELB以一台虚拟主机为目标

在Web环境中使用会话令牌管理CosmosDb会话一致性级别

提供智能手机和Web应用程序时如何确保本地和远程数据库之间的数据一致性

有关一致性哈希的一些后续问题

为带有ELB的2个EC2上托管的应用设置Node.js日志记录的最佳方法

Java和Python程序的相同的一致性哈希算法实现