首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計疑難解答

SpringMVC + Tomcat WebSocket 連接數瓶頸?原來是瀏覽器限制

     編輯:程式設計疑難解答

開發者部署 WebSocket 應用,前端並發測試發現單機 Tomcat 只能支撐 ~260 條連接,懷疑是連接器配置問題。經排查發現:非 Tomcat 瓶頸,而是瀏覽器對單域名 WebSocket 連接數的硬性限制。

關鍵發現

  • Chrome:約 261 條
  • IE:約 16 條
  • Firefox:約 200 條

解決路徑

  1. 多域名分流:ws1.example.com、ws2.example.com 繞過單域限制
  2. 啟用 HTTP/2:多路複用單 TCP 連接,瀏覽器不計入 WS 限額
  3. 原生 WebSocket 替換 SockJS:減少握手開銷,提升單連接吞吐
  4. Tomcat 調優:maxThreads、acceptCount、NIO 模式確保非阻塞

配置參考

<Connector port="8080" protocol="org.apache.coyote.http11.Http11NioProtocol"
           maxThreads="800" acceptCount="1000"
           connectionTimeout="20000" redirectPort="8443" />

單機 1 萬+ 長連接在調優後完全可行;若仍不足,需引入 WebSocket 集群 + 負載均衡 (Nginx/HAProxy) + Redis Pub/Sub 做水平擴展。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved