假设我有一个简单的架构,会话将通过数据库共享,多个前端(比如F1和F2)与同一个后端通话。
我的问题是两个前端都会收到对应同一会话的请求的情况:一个天真的实现会导致会话相互覆盖(我看着似乎属于这种情况的django)。我可以尝试设计后端,例如它保证不超过一个前端可以处理给定的会话,但这似乎很难正确,特别是如果我想处理前端失败。
我不禁想到这个案件首先是病态的(任何时候都不应该有一个以上的特定会话请求),并且不值得处理,但我没有多少在Web开发方面的经验,也许我错过了一些东西。人们通常如何处理这个案子?
我想避免的可能解决方案:
答案 0 :(得分:0)
一种常见的解决方案称为会话持久性。无论您对f1或f2的请求是什么路径,都确保只要会话处于活动状态,具有该会话的客户端只会转到一个前端。
这是几乎所有负载均衡器的常见功能。例如,nginx具有ip_hash http://wiki.nginx.org/NginxHttpUpstreamModule