2014-02-13 2 views
25

Хорошо, я прочитал небольшую статью по вики, которая немного объяснила AJP. В основном этот протокол используется для связи между сервером Apache и Application. Но зачем это нужно в первую очередь? Почему бы не использовать только простой http?Для чего используется протокол AJP?

ответ

27

Более конкретно, и на самом деле не охвачены в этой ehow статье, есть некоторые нетривиальные накладные расходы для разбора заголовков HTTP запросов и создания их ответы. Если вы запускаете свой сервер приложений с помощью веб-прокси-сервера, AJP позволяет пропустить этот дополнительный синтаксический анализ и просто передавать эффективные двоичные представления заголовков между прокси-сервером и сервером приложений. Существуют и другие преимущества, такие как простые пулы соединений и тесная интеграция, если вы используете apache/mod_jk для tomcat.

< Client - HTTP/s-> Proxy < - HTTP/s -> App

против

< Client - HTTP/s-> Proxy < - AJP -> App

12

AJP (Apache Jserv Protocol) в основном это binary protocol, что позволяет отменить запросы прокси с веб-сервера FE на сервер приложений BE, эффективно распространяя всю необходимую информацию, чтобы поток Req-Res продолжался успешно. Часто AJP используется для балансировки нагрузки с использованием политик липкого сеанса: благодаря переданным данным заголовка веб-сервер FE может загружать баланс по сравнению с аналогами BE, используя определенные модули (например, mod_jk).

AJP используется в основном потому, что:

  1. это более производительным, чем любой обмен HTTP,
  2. он интегрирован с широко используемыми обращенно-проксирование модулей (т.е. mod_jk, mod_proxy),
  3. реализация Tomcat в обеспечивает богатый набор API, который является протокольным трансверсалом: данные HTTP (s) легко распространяются и могут быть получены с помощью простых вызовов API (канонический getXYX(), очень эффективный и немедленный), так что это похоже на работу с HTTP с более высокой скоростью.

Определенно, я бы сказал, что это проверенное решение с почти 20-летним сроком погашения на плечах: оно успешно используется в производственных условиях.

+0

Существует также причина № 0: 'mod_jk' предшествует использованию HTTP в Apache JServ (долговременном продукте). Исторически, 'mod_jk' предоставил множество функций, недоступных через' mod_proxy'. В эти дни эти два продукта приблизились к соотношению характеристик, поэтому импульс - это единственное, что помогает AJP в использовании. –

Смежные вопросы