使用多个线程处理单个连接

时间:2014-11-09 03:03:15

标签: netty

我有3个异步服务器和客户端相互连接,就像一个链。

请求通过3系统,如

=> System 1 => System 2 => System 3 =>

响应

=> System 3 => System 2 => System 1 =>

我在每个系统中都有一个逻辑,以便使用正确的请求加入响应。通过这种逻辑,我设法以不同的顺序处理响应和请求。

今天我在系统之间只有一个连接。我注意到只使用了一个线程,性能不佳...... :(

是否有任何配置强制每个连接使用多个线程? 这是解决这个问题的正确方法吗?或者我必须在每个系统之间建立一个连接池?,netty某种类型的这个池还是我必须自己实现它?

我正在使用netty 5.

非常感谢。

1 个答案:

答案 0 :(得分:1)

有关线程模型的一般描述,请参阅Netty wikis。总之,Netty 4.0+不会在通道处理操作中引入并发性。查看netty examples的大部分内容,您会发现因此缺乏同步。同时在通道上操作会给框架和界面带来更多的复杂性,以便与框架进行交互。

我认为问题是您的用例支持是否在多个渠道中分开?这取决于很多因素,但如果您的算法和数据支持并行化,那么您可能会看到整体吞吐量的改进。

Netty确实提供ChannelGroup,但我不确定这是否适合您的用例。