Java + Netty: повышение пропускной способности приложения за счет делегирования обработки запросов отдельному пулу потокJAVA

Программисты JAVA общаются здесь
Anonymous
Java + Netty: повышение пропускной способности приложения за счет делегирования обработки запросов отдельному пулу поток

Сообщение Anonymous »

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

Подробнее здесь: https://stackoverflow.com/questions/798 ... est-proces

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