Недостатки Tomcat Http11NioProtocol

С Tomcat 6.0.x мы можем использовать Http11NioProtocol и получить масштабируемую производительность. Есть ли какая-либо конкретная причина/недостаток использования Http11NioProtocol, что Tomcat не использует этот протокол в качестве протокола по умолчанию?

Ответы

Ответ 1

В общем контексте NIO обычно требуется выполнить некоторые контрольные измерения производительности, чтобы убедиться, что вы получаете производительность, о которой вы думаете. Помните, что Http11NioProtocol делает некоторые нечетные вещи, например имитируемую блокировку, для достижения поведения соединителя при вставке - это не является бесплатным и потенциально может быть менее эффективным, чем стандартный соединитель Http11Protocol.

Мы удовлетворены работой нашего webapp с разъемом Http11Protocol по умолчанию. Сотни миллионов HTTP-запросов в месяц на 5-летнем оборудовании.

Если производительность действительно вызывает беспокойство, вам следует исследовать более трудоемкий шаг использования AJP Connector Http11AprProtocol. Это часть родного коннектора, написанная на C, которая, как сообщается, работает быстрее. Но получение и запуск занимает больше, чем изменение server.xml.

У меня были проблемы с Http11NioProtocol и сторонней библиотекой API с открытым исходным кодом. (OpenAMF, датированный AMF0 POJO thingy.) Смысл, это не сработало. Но если это сработает для вас, тогда остынь.

Вкратце:

  • Преимущества разъема NIO являются спорными
  • Запуск тестов
  • Рассмотрим разъем AJP