我有 3 个异步服务器和客户端,它们像一条链一样相互连接。
一个请求会经过 3 个系统,例如
=> System 1 => System 2 => System 3 =>
和回应
=> System 3 => System 2 => System 1 =>
我在每个系统中都有一个逻辑,以便将响应与正确的请求结合起来。通过这种逻辑,我设法以不同的顺序处理响应和请求。
今天,我的系统之间只有一个连接。我注意到只使用了一个线程,并且性能不好......:(
是否有任何配置可以强制每个连接使用多个线程?
这是解决这个问题的正确方法吗?或者我必须在每个系统之间有一个连接池?netty 有某种这种池还是我必须自己实现它?
我使用的是netty 5。
多谢。
See the Netty 维基百科 http://netty.io/wiki/new-and-noteworthy-in-4.0.html#wiki-h2-34对线程模型有一个很好的一般描述。总之,Netty 4.0+ 不会在通道处理操作中引入并发性。查看大多数网络示例 https://github.com/netty/netty/tree/master/example/src/main/java/io/netty/example您会注意到因此缺乏同步。同时对通道进行操作会给框架和与框架交互的接口带来更多的复杂性。
我认为问题是您的用例是否支持在多个渠道之间拆分?这取决于很多因素,但如果您的算法和数据支持并行化,那么您可能会看到整体吞吐量的提高。
Netty确实提供了一个频道组 https://github.com/netty/netty/blob/master/transport/src/main/java/io/netty/channel/group/ChannelGroup.java但我不确定这是否适合您的用例。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)