卓越飞翔博客卓越飞翔博客

卓越飞翔 - 您值得收藏的技术分享站
技术文章64334本站已运行4115

我的本地主机上的 websocket 连接数不能超过 28233 个(用于压力测试)| Go 客户端(大猩猩)

我的本地主机上的 websocket 连接数不能超过 28233 个(用于压力测试)| go 客户端(大猩猩)

问题内容

我正在尝试创建连接到同一 websocket 服务器(go 服务器)的客户端池,以测试性能和处理即将到来的请求的能力。

例如,我想知道如何才能达到 100k 客户端,因为我看到当我达到 28233 个 gorilla 客户端(websocket 客户端)时,程序无法创建更多。

我收到以下错误

tcp 127.0.0.1:8000: connect: cannot assign requested address

提前致谢


正确答案


从 127.0.0.1 到 127.0.0.1:8000 不能有 100k 个并行客户端连接。这些并行客户端连接中的每一个都必须具有不同的源端口(否则就不是不同的连接),并且只有 64k 源端口可用。实际上,数量甚至更少,因为系统会从临时端口 甚至更少(取决于操作系统和配置)。

如果系统无法选择未被另一个连接使用的唯一源端口到相同的目标 IP 和端口,那么您将收到“无法分配请求的地址”。

如果您想支持更多并行连接,您需要更改连接的其他参数,而不仅仅是源端口。通常,这是通过不使用单个服务器套接字而是使用多个侦听不同端口的套​​接字来完成的。

上一篇: 从接口转换私有动态类型{}
下一篇: var Foo 结构和 type Foo 结构之间的区别
留言与评论(共有 0 条评论)
   
验证码:
隐藏边栏