Java 具有持久连接的NioEventLoopGroup的线程数
我想使用JavaNetty为来自客户端的大量持久连接创建一个TCP服务器。换句话说,想象一下有1000个客户端设备,所有这些设备都创建并维护到TCP服务器的持久连接。将有一个合理的流量(主要是文本行)在每个持久连接之间来回移动。如何确定NioEventLoopGroup的boss组和工作组中使用的最佳线程数 我的理解是,在创建连接时,Netty会创建一个Java 具有持久连接的NioEventLoopGroup的线程数,java,sockets,tcp,netty,nio,Java,Sockets,Tcp,Netty,Nio,我想使用JavaNetty为来自客户端的大量持久连接创建一个TCP服务器。换句话说,想象一下有1000个客户端设备,所有这些设备都创建并维护到TCP服务器的持久连接。将有一个合理的流量(主要是文本行)在每个持久连接之间来回移动。如何确定NioEventLoopGroup的boss组和工作组中使用的最佳线程数 我的理解是,在创建连接时,Netty会创建一个SimpleChannelInboundHandler对象来处理连接。创建连接时,将调用处理程序channelActive方法,每次从客户端获取
SimpleChannelInboundHandler
对象来处理连接。创建连接时,将调用处理程序channelActive
方法,每次从客户端获取新消息时,将调用方法messageReceived
(或Netty 4.0.24中的channelRead0
方法)
NioEventLoopGroup
的线程数量以及如何使用处理程序中的任何线程,是否有任何指导非常感谢您提供的任何帮助。我如何确定NioEventLoopGroup的boss组和工作组中使用的最佳线程数
- 关于Boss线程,如果您说您需要持久连接,那么使用大量Boss线程是没有意义的,因为Boss线程只负责接受新连接。所以我只会使用一个boss线程
- 工作线程的数量应取决于处理器内核
- 你真的需要这么做吗?也许你应该考虑用另一种方式来做你的逻辑,如果不是,那么你应该考虑OIO和每个连接的新线程。
- 您应该避免在处理程序中使用线程阻塞操作
- 是的,是的