我正在 TCP/IP 之上实现一个二进制协议,并使用 Netty 来实现这一点。我的问题是性能相当差(600 msg/s)。我作为客户端连接到仅具有一个连接的服务器。当我使用 JTop 调查运行实例时,我看到 Netty 非常频繁地使用 1 个工作线程,而其他 5 个工作线程什么也没做(0% 使用率)。我在网上挖掘,我发现的只是提到了 ExecutionHandler。但是,如果这 6 个工作线程就足够了,我为什么要使用它。还是我误解了 Netty 如何使用这些线程?
我的 Netty 初始化代码:
this.channelFactory = new NioClientSocketChannelFactory(this.executors, DaemonExecutors.newCachedDaemonThreadPool(), 1, 6);
this.clientBootstrap = new ClientBootstrap(channelFactory);
this.channelGroupHandler = new ClientChannelGroupHandler(this.channels);
this.clientBootstrap.getPipeline().addLast("ChannelGroupHandler", this.channelGroupHandler);
感谢马图斯的任何提示