TCP/IP の上にバイナリ プロトコルを実装し、Netty を使用してこれを実現しています。私の問題は、パフォーマンスがかなり悪いことです (600 msg/s)。クライアントとして、1 つの接続のみでサーバーに接続しています。JTop で実行中のインスタンスを調べたところ、Netty が 1 つのワーカー スレッドを非常に頻繁に使用しており、他の 5 つのワーカー スレッドは何もしていない (0% の使用量) ことがわかりました。私は Web を掘り下げていましたが、見つかったのは 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);
ヒントをありがとう