architecture - 服务器一次可以处理多少个客户端?

标签 architecture tcp network-programming

我想答案在很大程度上取决于客户将进行什么样的事件,但假设我想制作一个客户端/服务器架构,它只涉及连接和断开连接。

也就是说,打开一个 TCP 连接并保持它,比如说,三个小时。

对于一次可以有多少个可能的连接是否有硬性限制(由操作系统或协议(protocol)等设置)?

此外,这会对服务器产生哪些开销?如果 10000 个客户端将使用 TCP 连接并保持该连接(假设 TCP 具有自己的保活功能)3 小时,服务器是否必须处理除保活、连接和断开操作之外的任何事情?

最佳答案

我在这里写了博客:http://www.serverframework.com/asynchronousevents/2010/12/one-million-tcp-connections.html

在 Windows 上有一些资源限制可能会给您带来问题,但是 10,000 个连接很容易。事实上,我已经在一个相当低规范的 VM 上运行了超过 70,000 个连接,请参见此处 http://www.lenholgate.com/blog/2005/11/windows-tcpip-server-performance.html了解详情。

很可能是您在代码中所做的限制了您可以处理的连接数,现代操作系统将很容易处理比您在代码中可以处理的更多连接数。

关于architecture - 服务器一次可以处理多少个客户端?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5055832/

相关文章:

c++ - 如何在 RHEL c/cpp 应用程序上测试连接超时

algorithm - 网络流中跨 block 的字符串匹配

sockets - 是否存在网络端口数量不够的应用?

architecture - 何时使用数据传输对象和数据集

c# - 查找网络中的所有IP地址

database-design - 存储分层标签的最佳方法

security - 在 AWS 安全组中,在端口 443 上设置自定义 TCP 规则与设置 HTTPS 规则(也在 443 上)有什么区别?

c - 在 Linux 中将过滤器附加到原始套接字

angular - Webpack 5 Module Federation 微前端和 Nx monorepos 是互斥的吗?

kubernetes - Kubernetes 上的 Redis 主/从复制可实现超低延迟