我有3个异步服务器和客户端相互连接,就像一个链。
请求通过3系统,如
=> System 1 => System 2 => System 3 =>
响应
=> System 3 => System 2 => System 1 =>
我在每个系统中都有一个逻辑,以便使用正确的请求加入响应。通过这种逻辑,我设法以不同的顺序处理响应和请求。
今天我在系统之间只有一个连接。我注意到只使用了一个线程,性能不佳...... :(
是否有任何配置强制每个连接使用多个线程? 这是解决这个问题的正确方法吗?或者我必须在每个系统之间建立一个连接池?,netty某种类型的这个池还是我必须自己实现它?
我正在使用netty 5.
非常感谢。
答案 0 :(得分:1)
有关线程模型的一般描述,请参阅Netty wikis。总之,Netty 4.0+不会在通道处理操作中引入并发性。查看netty examples的大部分内容,您会发现因此缺乏同步。同时在通道上操作会给框架和界面带来更多的复杂性,以便与框架进行交互。
我认为问题是您的用例支持是否在多个渠道中分开?这取决于很多因素,但如果您的算法和数据支持并行化,那么您可能会看到整体吞吐量的改进。
Netty确实提供ChannelGroup,但我不确定这是否适合您的用例。