【问题标题】:What is AJP protocol used for?AJP 协议是做什么用的?
【发布时间】:2014-03-12 12:50:47
【问题描述】:

好的,我在 wiki 上阅读了一篇小文章,其中稍微解释了 AJP。 基本上,该协议用于 Apache 和应用程序服务器之间的通信。 但为什么一开始就需要它呢?为什么不只使用普通的 http?

【问题讨论】:

    标签: ajp


    【解决方案1】:

    似乎我正在寻找的答案是性能

    http://www.ehow.com/facts_7181755_ajp-protocol_.html

    【讨论】:

      【解决方案2】:

      更具体地说,在 ehow 文章中并没有真正涵盖,在请求中解析 http 标头并在响应中创建它们有一些重要的开销。如果你在你的应用服务器前面使用了一个网络代理服务器,AJP 允许你跳过额外的解析,只在代理服务器和应用服务器之间传递有效的头文件表示。如果您使用 apache/mod_jk 到 tomcat,还有其他好处,例如简单的连接池和紧密集成。

      客户端 代理 应用程序

      对

      客户端 代理 应用程序

      【讨论】:

      • 除了较短的标头和单个连接外,还有其他区别吗?在 HTTP2 中实现了相同的东西,所以我们可能只使用它而不是 AJP13
      【解决方案3】:

      AJP (Apache Jserv Protocol) 基本上是一个binary protocol,它允许反向代理从 FE Web 服务器到 BE 应用程序服务器的请求,有效地传播所有需要的信息以使 Req-Res 流继续成功。 通常,AJP 用于使用粘性会话策略进行负载平衡:由于传输的标头数据,FE Web 服务器可以使用特定模块(如 mod_jk)在 BE 对应方上进行负载平衡。

      使用AJP主要是因为:

      1. 它比任何 HTTP 交换都更高效,
      2. 它与广泛使用的反向代理模块(即 mod_jk、mod_proxy)集成,
      3. Tomcat 的实现提供了一组丰富的协议跨 API:HTTP(s) 数据是无缝传播的,并且可以通过简单的 API 调用来检索(规范的 getXYX(),非常有效和直接),所以它就像使用HTTP 速度更快。

      毫无疑问,这是一个经过验证的解决方案,已经成熟了近 20 年:它已成功用于生产环境。

      【讨论】:

      • 还有一个原因 #0:mod_jk 早于在 Apache JServ(一个早已不复存在的产品)中使用 HTTP。从历史上看,mod_jk 提供了许多通过mod_proxy 不可用的功能。这些天来,这两种产品的功能大致达到了同等水平,所以动力确实是唯一让 AJP 保持高使用率的因素。
      • 第一个链接失效了。可以更新一下吗?
      • 更新了 AJP 协议文档的链接。
      猜你喜欢
      • 2010-09-14
      • 2020-07-25
      • 2011-04-28
      • 1970-01-01
      • 2017-08-06
      • 2016-05-30
      • 2019-04-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多