【发布时间】:2016-03-25 05:44:33
【问题描述】:
我们正在开发一个允许用户向其他用户发送半实时事件的网站。当用户有新事件时,UI 将显示一个图标(非常标准的东西)。
我已经读到定期短轮询的扩展性不如 websockets,因为它给 web 服务器带来了更大的压力。我不太清楚为什么会这样?
我们使用的是 tomcat NIO(它没有每个线程的一对一连接比率)。据我了解,Tomcat NIO 非常擅长用少量线程处理较长的 HTTP 连接超时。
因此,如果定期轮询时间小于连接超时,则轮询不应创建另一个 TCP 握手,因为它只会重用现有的 HTTP 1.1 连接。
因此,上述内容似乎不会对服务器造成太大压力。它可能不像长轮询或 websocket 那样实时,但我不明白为什么它不应该扩展(假设服务器可以快速响应指示是否有新事件的响应——我们使用内存中的并发哈希图,所以这应该很快,不需要访问数据库)。
我错过了什么吗?
谢谢, -亚当
【问题讨论】: