gwt - 带有 http 负载均衡器的 GWT 提供了无效的 SID 值
问题描述
我有 2 个 openfire 服务器和一个弹性负载均衡器,并构建了一个 gwt 应用程序,当直接连接到一个服务器时,它在端口 7070 上使用 http 绑定它运行良好,但是当它连接到端口 7070 上的负载均衡器时它不工作并输出错误404 无效的 SID 值
注意:当负载均衡器在 tcp 模式下工作时它工作正常,但是当它的 http 模式下它不起作用并且我需要为它创建一个粘性会话
解决方案
这是因为一旦在一台机器上建立了 BOSH 会话,它就会与这台机器绑定。如果不在 ELB 上启用粘性会话,来自客户端的后续请求可以路由到第二个服务器,在该服务器上没有匹配请求的 BOSH 会话,这反过来会导致 SID 无效(因为 SID 在另一台机器上不存在)。
替代解决方案是(如果机器也公开公共 IP)在 BOSH 响应中返回“主机”信息,因此客户端可以使用该信息,然后向更正机器发出后续请求。但如果这不可能,他们必须使用“粘性会话”。
推荐阅读
- python - 如何从 Flask 中的 API 获取数据?
- c - Connect 在 C 中不断失败,出现错误 10049
- wpf - 使用 prism 7 显示启动画面的最佳位置在哪里
- java - 我们可以显式地创建单独的测试用例并在 JUnit 中运行它们吗?
- android - 在使用 RX 返回之前填充一些列表
- python - 如何使用 SQLAlchemy ORM 将孩子从一个父母复制到另一个父母?
- python - Tensorflow中的复值分布?
- roslyn-code-analysis - GetChangedDocumentAsync 返回 null 但应该有一个值
- rust - 是否可以连接迭代器?
- arrays - 根据字符串输出引用数组