在我们的管道中,当我们记录时,我们需要将数据放在当前线程的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的运作模式?
如果前者是正确的,那么是否有人建议如何最好地确保每个连接维护线程上下文?
答案 0 :(得分:1)
无法保证在处理另一个频道的事件处理之前,处理一个频道(在您的示例中是连接)的所有事件。