跳到主要内容

端到端负载压缩

PubSub+ API 可以执行端到端负载压缩,以实现以下目标:

  • 提高消息吞吐速度。
  • 减少带宽使用。
  • 提高应用程序的性能。

尽管端到端负载压缩会增加单个 PubSub+ API 的工作量,但它可以实现更快的消息发布和接收聚合速率。PubSub+ 事件代理提供了传输消息压缩功能,可以压缩整个消息,具体请参阅流式压缩连接。然而,当发送和接收大消息时,压缩整个消息会给事件代理带来大量工作,从而导致吞吐速度变慢。如果您的应用程序需要发送和接收大消息,建议您使用端到端负载压缩以提高性能。

  1. 压缩消息负载时的注意事项
  2. 在 PubSub+ API 中压缩消息负载

压缩消息负载时的注意事项

以下部分解释了在使用 PubSub+ 消息 API 压缩消息负载时需要注意的内容。

只使用一种消息压缩方式

建议您仅使用一种压缩方式,即通过事件代理的流式压缩连接或通过 API 的端到端负载压缩。多次压缩相同的消息会浪费资源,通常也不会使消息大小进一步减小。

不要对小消息使用端到端负载压缩

端到端负载压缩最适合处理几兆字节大小的消息。不建议对小消息使用消息负载压缩,因为端到端负载压缩实际上可能会增加小消息的大小。

升级发布者和接收者应用程序

只有当 API 支持消息负载压缩并且更新到最低支持版本时,接收者应用程序才会自动解压缩任何压缩的消息负载。如果您的接收者应用程序不支持消息负载压缩,可能会导致潜在的错误或异常。请确保将您的发布者和接收者应用程序升级到支持负载压缩的最低版本。有关版本支持信息,请参阅 PubSub+ 消息 API 中的功能支持。

端到端负载压缩的限制

端到端负载压缩目前不支持 PubSub+ 缓存。

端到端负载压缩与以下内容不兼容:

  • SolCache
  • 非 SMF 协议,如 AMQP、HTTP、Kafka 和 MQTT

如果您的应用程序使用了上述任何内容,建议您不要使用端到端负载压缩。

在 PubSub+ API 中压缩消息负载

您的发布者应用程序可以在发布消息之前压缩消息的二进制负载。要压缩消息负载,您必须设置一个属性,告知 API 启用端到端负载压缩。负载压缩级别属性可以设置为 0 到 9 的整数:

  • 0 — 禁用负载压缩。这是默认设置。
  • 1 - 9 — 启用负载压缩。1 是最低压缩级别,数据吞吐速度最快;9 是最高压缩级别,数据吞吐速度最慢。

您应根据网络和性能需求调整负载压缩级别。

PubSub+ 消息 API如何设置端到端负载压缩级别
Java RTO在配置会话属性时设置 SessionHandle.PROPERTIES.PAYLOAD_COMPRESSION_LEVEL。例如:

下表显示了如何在您的发布者应用程序中设置端到端负载压缩属性: