2012-10-13 14 views
0

我使用的是網狀發送多個客戶端的請求,並想知道如何最好地配置NioClientSocketChannelFactory。即:的Netty NioClientSocketChannelFactory - 高效的構造函數的參數

NioClientSocketChannelFactory.NioClientSocketChannelFactory(Executor bossExecutor, Executor workerExecutor, int workerCount)

我有一個ClientBootstrap和通道,並正在寫信多個請求不同的主機,而不是在設置和引導選項。作爲一個例子,我可能會用迭代器推送100個請求。

我應該如何配置呢? 我試過單和緩存池執行者的不同組合與1或100最大的工人。下面是一些例子:

  1. 當使用一個單一的執行和1名工人似乎提供多線程的請求,但設置數量爲100時,它出現單線程
  2. 當使用緩存池的Executor,設置計數1似乎也更有效率。增加工人人數似乎使其變慢。

所以......我應該如何配置工廠以獲得最佳性能,並基於想要達到數百個或更多的併發請求?

回答

1

最好的辦法是使用緩存的線程池,讓Netty的決定基於可用的處理器的工人數量,或者乾脆:

... = new NioClientSocketChannelFactory(); 
+0

假設你的意思是「新NioClientSocketChannelFactory(執行人bossExecutor,執行人workerExecutor)」? – thomascrabs

+0

@thomascrabs不,我的意思是我寫的。該構造函數將爲老闆和工作人員使用緩存執行程序。 –