2012-10-13 2 views
0

Я использую netty для отправки нескольких клиентских запросов и задавался вопросом, как лучше всего настроить NioClientSocketChannelFactory. то есть:Netty NioClientSocketChannelFactory - Эффективные параметры конструктора

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

У меня есть один ClientBootstrap и канал, и я пишу несколько запросов на разных хостах, и я не устанавливать и бутстраповские варианты. В качестве примера я могу нажать 100 запросов с использованием итератора.

Как это настроить? Я пробовал разные комбинации одиночных и кэшированных исполнителей с 1 или 100 макс работников. Вот некоторые примеры:

  1. При использовании одного исполнителя и 1 сотрудника, кажется, обеспечивают многопоточные запросы, но при установке счетчика 100 оказывается однопоточен
  2. При использовании кэширования данных пул Исполнителя, установка счетчика на 1 также кажется более эффективным. Увеличение количества рабочих, кажется, делает его медленнее.

Итак, как мне настроить завод на лучшую производительность, исходя из желаний сотен или более одновременных запросов?

ответ

1

Лучше всего использовать кэшированные пулы потоков и пусть Нетти решить количество уборщица, основываясь на доступных процессоров, или просто:

... = new NioClientSocketChannelFactory(); 
+0

Предположим, вы имеете в виду «новый NioClientSocketChannelFactory (Executor bossExecutor, Палач workerExecutor)» ?? – thomascrabs

+0

@thomascrabs Нет, я имел в виду то, что написал. Этот конструктор будет использовать кэшированные исполнители для босса и рабочих. –

Смежные вопросы