首页 文章

AWS ELB粘性会话可以用于后端请求吗?

提问于
浏览
3

我目前在AWS上托管我的Web应用程序,我使用两个ELB实例,一个用于 balancer 前端请求到应用服务器,另一个用于 balancer 从应用服务器到API服务器的后端请求,如下所示(抱歉蹩脚的ascii图):

/-->APP1--\    /-->API1
User-->ELB1           ELB2
           \-->APP2--/    \-->API2

换句话说,APP服务器发出的API请求在两个后端API服务器之间均衡负载均衡 .

但是,因为我在API服务器上缓存响应,并使用不在API服务器之间共享的缓存失效机制,所以我希望用户的会话停留在一个后端API服务器上 .

我已经将用户的会话粘在一个APP服务器上,使用正常的ELB负载均衡器生成的cookie粘性,但有没有办法让后端ELB卡在会话中?当然,这些请求并非来自浏览器,因此没有什么可以管理cookie,而ELB似乎只能管理cookie的粘性 . 我可以模拟后端请求的必要cookie吗?

2 回答

  • 0

    要关闭这个问题,是的,通过简单地从ELB捕获'Set-Cookie'响应头,然后在后续请求中传回cookie,这很容易实现 . 但是,请参阅下面的警告 .

  • 1

    我不相信你可以在你的App服务器和API服务器之间实现粘性,而不需要做大量繁杂的工作 . 我可能是错的,并且我非常愿意纠正,但我不相信有一个简单的解决方案,除非您用于App Server逻辑的语言有所提供 .

    无论如何,这里最好的解决方案是将您的应用服务器和缓存分离 . 在由不同服务器提供服务的API服务器之间共享单个缓存会更有意义 . 这将增加您的基础架构的容错能力,并在缓存中为您提供更高质量的数据(特别是在您扩展时) . 您可以使用ElastiCache服务为您执行此操作,避免任何繁重的工作 .

相关问题