2017-07-04 47 views
0

因此,我們正在生產服務器上從Netty 3.9遷移到Netty 4.1。在兩個版本中,ChannelHandler在管道中的添加和刪除似乎有所不同。特別是,在關閉服務器上的一個通道後,我記錄了管道中某個時刻出現的ChannelHandler。在Netty 4.1中,管道有時顯示很少或者沒有處理程序,在Netty 3.9中,所有處理程序總是存在。所有這些在關閉通道參考後。這是預期的嗎? Netty(在3.9和4.1中)何時在通道關閉後刪除管道中的所有處理程序?在Netty 4.1中,關閉服務器上的通道後,管道中的處理程序何時被刪除?

回答

2

在netty 4.x中,當通道關閉時,我們從管道中刪除所有處理程序。這樣我們也執行handlerRemoved(...)這可能需要釋放內存等。

+0

謝謝諾曼。更多疑惑:這是以某種'asyc'的方式發生的嗎?也許在後臺線程或什麼的?因爲有時在關閉它們之後我仍然可以看到我的編碼器和解碼器只有幾個通道。 Netty 3.x中不存在關閉通道後刪除處理程序的機制? – gravetii

+1

是的,這可能以異步的方式發生,是的,這是不存在於3.x –

相關問題