Message Queue 软件允许客户端使用各种低级别的传输协议与代理进行通信。Message Queue 支持连接服务中所述的连接服务(及相应协议)。
协议的选择基于应用程序的要求(加密、可通过防火墙访问等),但是所作的选择会影响总体性能。
我们的测试比较了两种情况下的 TCP 和 SSL 吞吐量:一个高可靠性方案(将 1k 大小的持久性消息发送至长期订阅主题目的地,并使用 AUTO_ACKNOWLEDGE 确认模式)和一个高性能方案(将 1k 大小的非持久性消息发送至非长期订阅主题目的地,并使用 DUPS_OK_ACKNOWLEDGE 确认模式)。
总的说来,我们发现在高可靠性情况下协议具有较小影响。这可能是因为在高可靠性情况下所需的持久性开销在限制吞吐量方面是比协议速度更重要的因素。另外:
TCP 提供与代理通信的最快方法。
SSL 在收发消息时比 TCP 要慢 50% 到 70%(对于持久性消息是 50%,对于非持久性消息则接近 70%)。另外,SSL 在建立初始连接时比较慢(可能需要数秒钟),因为客户端和代理(在使用 HTTPS 的情况下则为 Web 服务器)需要建立私钥,以供加密要传输的数据时使用。性能的下降源自于加密和解密每个低级别 TCP 包时所需的额外处理。
HTTP 比 TCP 或 SSL 都要慢。它使用 Servlet,该 Servlet 在 Web 服务器上作为客户端与代理之间的代理运行。封装 HTTP 请求中的包以及消息经过两个跃点(客户端到 Servlet,Servlet 到代理)后才到达代理的要求均涉及性能开销。
HTTPS 比 HTTP 慢是因为需要额外的开销以加密客户端和 Servlet 之间以及 Servlet 和代理之间的包。