问题描述
我有多个 Node.js 服务器,它们位于 AWS 中的负载均衡器后面。这些服务器是有状态的,并且包含对所有连接的客户端都需要访问的内存数据结构的转换。即,如果用户 1 连接到 Box 1 并进行更新,则用户 2 也需要连接到 Box 1 才能接收这些更新。
我最初尝试使用基于应用程序的粘性,其中用户 1 将发送带有查询参数 customAlbId=1
的请求,服务器将解析该参数,然后返回具有相同值的 Set-Cookie
标头 {{ 1}}。只要用户 1 为那个 cookie 发送相同的值,我就能够保持粘性。
当用户 2 获得一个具有完全相同值 customAlbId=1
的 cookie 集时,问题就出现了,ALB 实际上将其路由到了不同的框。因此,基于应用程序的粘性将保持客户端与他们连接的第一个框的连接,但它不会说“这个 cookie 值存在,并且已经与框 1 关联,将用户 2 路由到框 1"。
有没有办法用 AWS ALB 做到这一点?需要设置为 cookie 值的 id 是动态生成的,因此我无法使用一些高级请求路由规则提前对它们进行硬编码。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)