Хорошо, я прочитал небольшую статью по вики, которая немного объяснила AJP. В основном этот протокол используется для связи между сервером Apache и Application. Но зачем это нужно в первую очередь? Почему бы не использовать только простой http?Для чего используется протокол AJP?
ответ
Более конкретно, и на самом деле не охвачены в этой ehow статье, есть некоторые нетривиальные накладные расходы для разбора заголовков HTTP запросов и создания их ответы. Если вы запускаете свой сервер приложений с помощью веб-прокси-сервера, AJP позволяет пропустить этот дополнительный синтаксический анализ и просто передавать эффективные двоичные представления заголовков между прокси-сервером и сервером приложений. Существуют и другие преимущества, такие как простые пулы соединений и тесная интеграция, если вы используете apache/mod_jk для tomcat.
< Client - HTTP/s-> Proxy < - HTTP/s -> App
против
< Client - HTTP/s-> Proxy < - AJP -> App
Кажется, ответ, который я искал это Perfomance
AJP (Apache Jserv Protocol) в основном это binary protocol, что позволяет отменить запросы прокси с веб-сервера FE на сервер приложений BE, эффективно распространяя всю необходимую информацию, чтобы поток Req-Res продолжался успешно. Часто AJP используется для балансировки нагрузки с использованием политик липкого сеанса: благодаря переданным данным заголовка веб-сервер FE может загружать баланс по сравнению с аналогами BE, используя определенные модули (например, mod_jk).
AJP используется в основном потому, что:
- это более производительным, чем любой обмен HTTP,
- он интегрирован с широко используемыми обращенно-проксирование модулей (т.е. mod_jk, mod_proxy),
- реализация Tomcat в обеспечивает богатый набор API, который является протокольным трансверсалом: данные HTTP (s) легко распространяются и могут быть получены с помощью простых вызовов API (канонический getXYX(), очень эффективный и немедленный), так что это похоже на работу с HTTP с более высокой скоростью.
Определенно, я бы сказал, что это проверенное решение с почти 20-летним сроком погашения на плечах: оно успешно используется в производственных условиях.
- 1. Для чего используется POCO_NO_NET_IFTYPES?
- 2. Для чего используется useLocalSessionState?
- 3. Для чего используется NT_GNU_BUILD_ID?
- 4. Для чего используется IList?
- 5. Для чего используется #pragma?
- 6. Для чего используется GLOBALPKG.RET1?
- 7. Для чего используется robots.txt.dist?
- 8. Для чего используется swarminject?
- 9. Для чего используется sigaddset?
- 10. Для чего используется @XXXXX?
- 11. Для чего используется структура.sql?
- 12. Для чего используется секунда?
- 13. Для чего используется JdbcDaoSupport?
- 14. Для чего используется идентификатор?
- 15. Для чего используется LDAP?
- 16. Для чего используется _references.js?
- 17. Для чего используется Sqlite?
- 18. Для чего используется maven.multiModuleProjectDirectory?
- 19. ASM - для чего используется «%»?
- 20. Для чего используется iframe?
- 21. Для чего используется imagecreatetruecolor?
- 22. Для чего используется __init__?
- 23. Для чего используется hashCode?
- 24. Для чего используется героку?
- 25. Для чего используется?
- 26. Для чего используется JMSType?
- 27. Для чего используется GCC_NO_COMMON_BLOCKS?
- 28. Tokenizer UITextInput, для чего он используется?
- 29. Для чего используется sys/user.h?
- 30. Java - для чего используется «@Override»?
Существует также причина № 0: 'mod_jk' предшествует использованию HTTP в Apache JServ (долговременном продукте). Исторически, 'mod_jk' предоставил множество функций, недоступных через' mod_proxy'. В эти дни эти два продукта приблизились к соотношению характеристик, поэтому импульс - это единственное, что помогает AJP в использовании. –