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

问题描述 投票:4回答:1

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

这样做的可扩展性如何?我知道每个SSE连接使用一个HTTP请求--这是否意味着一个Web服务器可以处理和HTTP请求一样多的SSE连接(类似于 本回答)? 我觉得可能是这样,但我不确定SSE连接是如何工作的,以及它是否比一个简单的HTTP请求更复杂,更耗费资源。

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

谁能提供一些关于这个问题的见解?

(要澄清的是,我不是在问 客户端可以打开多少个SSE连接我问的是一个web服务器能合理地保持多少个开放。)

websocket webserver server-sent-events
1个回答
0
投票

Tomcat 8 (web服务器举个例子)及以上版本,使用NIO连接器来处理传入的requst。它可以服务最大10,000个并发连接(文件). 它没有说任何关于最大连接数的pers se。他们还提供了另一个参数acceptCount,这是连接数超过10,000时的备用参数。

socket连接被当作文件处理。每一个进入 tomcat 的连接就像打开一个套接字一样,并且取决于操作系统,例如在 linux 中取决于文件描述符策略。你会发现一个常见的错误,当打开的连接数太多,或者已经达到最大连接数时,如下所示

java.net.SocketException: Too many files open

您可以通过编辑以下内容来改变打开的文件数量。

/etc/security/limits.conf

不清楚允许的最大限制是什么。有些人说Tomcat的默认值是1096,但Linux的(默认)值是30000,可以更改。

文章 我已经分享了LinkedIn团队能够去250K连接在一个主机上。

所以,这应该给你一个很好的想法,关于最大的sse连接可能的。

© www.soinside.com 2019 - 2024. All rights reserved.