2013-03-20 91 views
0

A Channel連接到單個EventLoop durring Channel.Unsafe#register。註冊通過EventExecutorGroup#next中的模塊操作進行分配。 A ChannelHandlerContext綁定到單個線程 - 通常與Channel相同。netty線程分佈

通道可能不均衡地取消註冊或工作負載在這些通道之間分佈不均勻。偶然可能有一個線程處理完整的工作負載。

是否存在防止這種情況的模式,或者這是不可避免的結構性問題?

回答

0

如果使用參數1構造NioEventLoopGroup,則可以強制使用一個線程。除此之外,我認爲我們只能通過計算EventLoop上有多少個通道並根據此選擇下一個通道來改進它。但即使這可能不是一個好方法,因爲一些頻道可能會做更多的工作,然後其他人。

+0

所以它是一個結構特徵,線程模型必須重寫,以防止綁定到多個通道的單個線程的負載過重。我會測試是否將個人派遣員工作爲解決方法。 我應該提出問題嗎? – systemtrap 2013-03-23 01:35:25