Я написал Netty HTTP Server.
Я выясняю, как правильно обрабатывать запросы Http
Опции: (1. Netty Handlers 2. LMAX Disruptor).
Я где-то читал, что LMAX Disruptor хорош для обработки событий asyn c.
Но после нагрузочного тестирования сервер с LMAX Disruptor для обработки событий обеспечил на 70% меньшую пропускную способность, чем Netty Handler. И задержка также увеличилась на 200%.
Я получал 30 кбит / с на 8-ядерном 16-гигабайтном боксе. После использования Lmax Disruptor, я получаю 10k QPS.
В настоящее время мой сервис просто читает запрос Json и возвращает ответ c. Я просто пытаюсь сравнить сырую производительность на данный момент.
Я читаю HttpRequest из SimpleChannelInboundHandler и отправляю обработчику событий LMAX Disruptor и освобождаю обработчик netty worker, конфигурация которого указана ниже:
Netty Потоки ввода-вывода: 24 и рабочие потоки: 48
Disruptor disruptor = new Disruptor<>(new EventFactory(), 65536, DaemonThreadFactory.INSTANCE);
Это потому, что Disruptor создает новый поток Daemon для каждого события?