Улучшите пропускную способность приложения, делегировав обработку запросов отдельному пулу потоков [закрыто]JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Улучшите пропускную способность приложения, делегировав обработку запросов отдельному пулу потоков [закрыто]

Сообщение Anonymous »

Я хочу выяснить, подходит ли приведенный ниже подход или лучше использовать другой подход.
У нас есть приложение, построенное на основе Java + Netty. Приложение чувствительно к задержке. Конфигурация Netty:
  • 1 главный поток + 96 рабочих потоков.
  • Всего установлено соединений с каналами Netty: ~5 тыс.+
При поступлении запроса рабочий поток Netty обрабатывает ввод-вывод/вывод конвейера канала (чтение из канала, запись в канал, жизненный цикл канала) + обработка запроса.
Здесь обработка запроса выполняется только в памяти, нет задействованы сетевой ввод-вывод или любые вызовы БД. Это ресурсоемкая задача. Поскольку обработка запросов также обрабатывается рабочим потоком из определенного канала, запросы других каналов будут поставлены в очередь для обработки (поправьте меня, если я ошибаюсь).
Мы хотим улучшить пропускную способность приложения. В качестве обходного пути мы хотим делегировать логику обработчика обработки запросов отдельной службе-исполнителю (служба-исполнитель представляет собой глобальный пул потоков для всех рабочих потоков). При таком подходе рабочему потоку не нужно ждать завершения обработки запроса, он просто делегирует запрос пулу потоков и быстрее переходит к следующему набору запросов в очереди.
Что мне следует учитывать дальше?

Подробнее здесь: https://stackoverflow.com/questions/798 ... -to-separa
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»