【发布时间】:2018-07-31 10:28:26
【问题描述】:
在我们的管道中,当我们记录时,我们需要将数据放入当前线程的 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 的运作模式?
如果前者是正确的,那么是否有人建议如何最好地确保每个连接都维护线程上下文?
【问题讨论】:
标签: netty