高性能socket通信求助

发布于 2021-11-20 13:41:43 字数 201 浏览 525 评论 4

需求:1台物理机上跑1000左右的client socket。(不间断接收服务器传输过来的信息)

用oio的方法,跑500个线程cpu就快满了。

研究了一下nio,发现他的轮询机制对于服务端性能提升不错。但对于客户端来说还是要1个客户端起自己的线程跑。

采用什么办法能够降低cpu的占用率呢?


如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

半世蒼涼 2021-11-24 23:37:27

得看你客户端的调用要求,如果客户端允许同步调用的话,不要起单独线程,在业务线程内同步调用就行,可以类比调用百度的http openapi。如果是要求异步调用的话,那必须要有单独的线程,一般也是放在nio上。

悟红尘 2021-11-24 17:56:51

netty 默认线程数 == CPU数*2

情痴 2021-11-23 20:16:45

客户端也可以用Selector。不想处理太多socket底层问题的话可以看看Netty和Mina。

水水月牙 2021-11-22 00:56:03

建议线程数用cpu核心数来定,比如8核就8或16线程

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文