【问题标题】:netty threads distributionnetty 线程分布
【发布时间】:2013-03-09 13:20:42
【问题描述】:

ChannelChannel.Unsafe#register 期间附加到单个EventLoop。注册通过EventExecutorGroup#next 中的模运算分发。 ChannelHandlerContext 绑定到单个线程——通常与Channel 相同。

频道可能被不均匀地取消注册,或者工作负载在这些频道之间分布不均。有可能让单个线程处理整个工作负载。

是否有防止这种情况发生的模式,或者这是一个不可避免的结构问题?

【问题讨论】:

    标签: netty


    【解决方案1】:

    如果您使用参数 1 构造 NioEventLoopGroup,您可以强制只使用一个线程。除此之外,我认为我们只能通过计算 EventLoop 上有多少通道并根据此选择下一个来改进它。但即使这样也可能不是一个好方法,因为某些 Channel 可能会比其他 Channel 做更多的工作。

    【讨论】:

    • 所以这是一个结构特征,必须重写线程模型以防止绑定到多个通道的单个线程上的过度负载。我将测试个人派遣给其他人是否可以作为一种解决方法。我应该提出问题吗?
    猜你喜欢
    • 2020-10-05
    • 2012-01-25
    • 2016-01-01
    • 2012-07-12
    • 2023-03-05
    • 2016-08-18
    • 2018-01-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多