Clojure: Какой сервер по умолчанию для платформы luminus? - PullRequest
0 голосов
/ 16 мая 2018

Как сейчас (2018), какой сервер http / tcp используется при настройке проекта шаблона luminus с настройками по умолчанию?

Я читаю, что luminus использует иммунант, однако имутант - это набор других вещей. и я также читал, что основной сервер, используемый в имутанте, откат.

Правильно ли я полагаю, что сервер по умолчанию загружен? Если да, то как работает настройка по умолчанию в отношении неблокирующего ввода-вывода? Предоставляет ли этот сервер неблокирующую архитектуру цикла событий, такую ​​как nginx / nodejs?

Ответы [ 2 ]

0 голосов
/ 17 мая 2018

Вы правы, что Immutant использует Undertow в качестве своего веб-сервера.

Undertow использует неблокирующие потоки ввода-вывода (обычно по одному на ядро ​​ЦП), а также управляет пулом рабочих потоков.Чтобы процитировать их документацию :

Рабочий XNIO управляет как потоками ввода-вывода, так и пулом потоков, которые можно использовать для блокировки задач.Обычно неблокирующие обработчики будут запускаться из потока ввода-вывода, а блокирующие задачи, такие как вызовы сервлета, будут отправляться в пул рабочих потоков.

Потоки ввода-вывода выполняются в цикле.Этот цикл выполняет три действия:

  • Запуск любых задач, запланированных для выполнения потоком ввода-вывода
  • Запуск любых запланированных задач, для которых истекло время ожидания
  • Вызовите Selector.select (), а затем вызовите любые обратные вызовы для выбранных ключей

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

Боюсь, я не могу говорить о сравнении фактической производительности , которая будет зависеть от конкретного случая использования.

0 голосов
/ 16 мая 2018

Похоже, что по умолчанию используется immutant, но вы можете выбрать альтернативные серверы .

...