我们使用 F5 进行负载平衡和 SSL 代理。在其背后,我们使用 Tomcat 实例来提供 Java 应用程序。这些应用程序相当小 - 有数百个并发用户。
我想压缩部分内容,并寻求有关选择在 F5 或 tomcat 实例上配置压缩的建议。决策中有什么重要因素吗,还是说只有 6 个因素?
答案1
如果您正在执行第 7 层负载平衡 (HTTP),那么应用服务器压缩内容并没有真正的好处,因为代理将解压缩内容并将其发送到客户端。发生这种情况是因为 LB 可能支持与客户端请求的版本/选项不同的版本/选项。
例如,LB 对应用服务器说的是 HTTP/1.1,但客户端说的是 HTTP/1.0。第二个示例 LB 支持压缩,因此应用服务器的响应是压缩的,但客户端不支持压缩。
您应该在应用服务器上禁用压缩,并让 LB 处理压缩。这样 LB 就可以节省几个解压和重新压缩内容的 CPU 周期。
免责声明。我曾使用过其他负载均衡器,但没有使用过 F5。
答案2
问题实际上归结为您希望将额外的开销放在哪里来处理压缩逻辑。如果您的应用服务器很强大,请将其放在那里,否则 F5 应该能够处理它。无论如何,您必须根据要压缩多少以及这会给您的系统带来多少额外负载来评估这一点。
答案3
BIG-IP 在大多数平台上都使用硬件进行压缩(最高可达 16Gbps)。如果您的服务器使用软件进行压缩,则可以通过在那里进行压缩来节省服务器 CPU 资源。
BIG-IP 系统硬件产品数据表
http://www.f5.com/pdf/products/big-ip-platforms-datasheet.pdf
除非您配置了需要解析响应内容的功能(如 HTTP 响应有效负载重写或 ASM Web 应用程序安全响应解析),否则 BIG-IP 不会解压缩响应内容。
亚伦