【问题标题】:Do Netty threads handle the duration of a connection before moving on?Netty 线程在继续之前处理连接的持续时间吗?
【发布时间】: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


    【解决方案1】:

    不能保证一个 Channel(在您的示例中是一个连接)的所有事件都在另一个 Channel 的事件处理开始之前得到处理。

    【讨论】:

    • 好吧,这就是我们的想法。感谢您的确认!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-09-10
    • 1970-01-01
    • 1970-01-01
    • 2018-10-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多