use*_*927 5 java jboss high-availability server-sent-events
在工作中,我们目前正在构建一个支持的网络应用SSE。
我们都是相对较新的人SSE,因此我们要处理很多(新手)问题:
当客户端关闭浏览器时,我们最终会断开连接。我认为有些人称其为鬼连接。
我们如何在服务器端检测到此类连接?我们要从通知列表中删除这些客户端。
我知道每个' SSE-connection'都活着application server。当我关闭开发服务器时,我直接在浏览器调试器上注意到连接消失了。
我们不应该设置一些连接上限吗? The application server连接将耗尽一些时间...
此外,某些服务器为每个请求专用一个线程。这样可能导致线程耗尽的问题...
应该SSE-broadcasting由一个application server(大多数请求与业务相关)来管理整个事务,还是应该由一个web server专门用于处理事务的事务来管理整个事务SSE-event?目前,所有业务请求和SSE事件均由处理Jboss application server。
如何在主动/主动模式(= master-master)中在实例之间随机路由请求的群集环境中管理SSE?
如果您有更多有用的信息(以及需要注意的注意事项),请随时分享!
小智 0
集群环境
管理服务器发送事件应用程序与管理传统 Web 应用程序没有太大区别。您可以使用负载均衡器来正确管理集群环境,并实施自动缩放机制,以便在达到实例限制时继续提供连接服务。
您应该注意的最重要的一点是确保您使用的代理可以几乎无限期地保持连接打开:HAProxy 和 NGINX 是不错的选择。
限制连接数
有些服务器回收线程(例如 Undertow),有些则不回收。一旦您知道您选择的服务器如何处理线程,您就可以计算每个实例的限制。
应用程序或网络服务器
除非管理“经典”业务相关请求的应用程序服务器已经被大量使用,否则不需要有专用服务器来管理 SSE 事件。
断开的连接
对于断开的连接,您可以通过定期发送通常称为“心跳”的内容来测试它们:如果客户关闭了连接,则会返回一条空消息。
| 归档时间: |
|
| 查看次数: |
1244 次 |
| 最近记录: |