跳到主要内容

流压缩连接

使用Solace企业或OpenMAMA消息传递API的应用程序可以启用消息数据的压缩,以便在传输之前对消息数据进行压缩并在接收时进行解压缩。

流压缩连接减少了要通过网络链路传输的消息数据帧的大小。减小帧的大小减少了通过网络传输帧所需的时间。数据压缩在传输链路的每个端点提供了一种编码方案,允许在链路的发送端从数据帧中移除字符,然后在接收端正确替换。由于压缩帧占用的带宽更少,因此任何时候可以传输更大的数据量。

使用数据压缩可能会减少带宽消耗,并在客户端和事件代理之间的低带宽连接上提供更低的延迟。

Solace还提供了PubSub+消息传递API中的端到端负载压缩。我们建议您只使用一种压缩形式,无论是通过事件代理的消息压缩还是通过API的端到端负载压缩。多次压缩同一消息可能会浪费资源,通常不会导致消息尺寸更小。更多信息,请参见端到端负载压缩的支持。

Solace Web消息传递API、REST或MQTT的客户不支持消息压缩。

压缩和解压缩执行的位置锚

在事件代理上,消息数据的压缩和解压缩由网络加速刀片(NAB)执行。对于使用消息传递API的客户端,消息数据的压缩和解压缩由第三方库执行。

通道压缩锚

当使用通道压缩时,事件代理监听一个特殊的TCP端口(默认为55003),当使用通道TLS + 压缩时,会监听一个不同的TCP端口(默认为55443)。这意味着客户端的会话属性值必须设置为与事件代理上适用的端口号相匹配。

事件代理侧的压缩锚

在事件代理侧进行压缩时,消息数据从发布客户端发送到事件代理的NAB压缩引擎进行压缩。一旦压缩数据可用,它就会通过客户端连接发送给订阅客户端。

事件代理侧的解压缩锚

在事件代理侧进行解压缩时,事件代理将从连接接收的压缩消息数据放入NAB解压缩引擎进行解压缩。一旦解压缩的消息数据可用,它就会交给上层应用程序进行进一步处理。

如果在解压缩操作期间检测到无法恢复的错误,将断开相关连接。这适用于传输链路的事件代理和客户端API两端。