gpt4 book ai didi

websocket - Web 服务器可以维护多少个 SSE 连接?

转载 作者:行者123 更新时间:2023-12-04 12:01:03 24 4
gpt4 key购买 nike

我正在尝试使用服务器发送事件 (SSE) 作为实时数据推送的 websockets 的替代方案(我的应用程序中的数据主要是单向的)。

这将有多大的可扩展性?我知道每个 SSE 连接都使用一个 HTTP 请求——这是否意味着 Web 服务器可以处理与 HTTP 请求一样多的 SSE 连接(例如 this answer )?我觉得可能是这种情况,但我不确定 SSE 连接是如何工作的,以及它是否比简单的 HTTP 请求更复杂/更需要资源。

我主要想知道这与浏览器可以保持打开的并发 websockets 数量相比如何。 This answer建议服务器只能同时处理 ~1400-1800 个套接字。

有人可以对此提供一些见解吗?

(澄清一下,我不是问 how many SSE connections can be kept open from the client ;我问的是网络服务器可以合理地保持打开多少。)

最佳答案

使用 NIO 连接器处理传入请求的 Tomcat 8(以 Web 服务器为例)及更高版本。它可以服务最多 10,000 个并发连接( docs )。它没有说明最大连接本身。他们还提供了另一个名为 acceptCount 的参数,它是连接超过 10,000 时的回退。

套接字连接被视为文件。到 tomcat 的每个传入连接就像打开一个套接字,并且取决于操作系统,例如在 linux 中取决于文件描述符策略。当打开的连接过多或达到最大连接数时,您会发现一个常见错误,如下所示

java.net.SocketException: Too many files open

您可以通过编辑更改打开文件的数量
/etc/security/limits.conf

目前尚不清楚允许的最大限制是多少。有人说 tomcat 的默认值是 1096,但 linux 的(默认值)是 30,000,可以更改。

关于 article我已经分享了linkedIn 团队能够在一台主机上建立 25 万个连接。

所以这应该让你对最大 sse 连接有一个很好的了解。取决于您的 Web 服务器最大连接配置、操作系统容量等。

关于websocket - Web 服务器可以维护多少个 SSE 连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53136208/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com