在继续之前,Netty线程是否处理连接的持续时间?

时间:2018-02-20 23:18:46

标签: netty

在我们的管道中,当我们记录时,我们需要将数据放在当前线程的MDC中,以便我们的日志解析服务正确地获取日志。

我认为Netty会将连接/通道固定到单个线程,但这些线程用于多个连接。

我的问题是,Netty中的线程在被固定到另一个连接之前是否完成了一个连接,或者它们被固定到多个连接并随机跳过连接的处理程序。

交错处理时间表示例:

Connection1.Handler1.onRead()
Connection2.Handler2.onWrite()
Connection1.Handler1.onRead()
Connection1.Handler2.onRead()

非交错处理时间表示例:

Connection1.Handler1.onRead()
Connection1.Handler2.onRead()
Connection1.Handler3.onRead()
Connection2.Handler1.onRead()
Connection2.Handler2.onRead()
Connection2.Handler3.onRead()

这两个时间线中的哪一个准确地描绘了Netty的运作模式?

如果前者是正确的,那么是否有人建议如何最好地确保每个连接维护线程上下文?

1 个答案:

答案 0 :(得分:1)

无法保证在处理另一个频道的事件处理之前,处理一个频道(在您的示例中是连接)的所有事件。