Rocketmq 消息的解压缩

来源:互联网 发布:西安鼓楼网络售票 编辑:程序博客网 时间:2024/05/18 22:10

       虽然 RocketMQ 没有 kafka 的批量发送的功能。但在发送消息的时候,如果消息大小超过了 128k ,这条消息是不允许发送的。但如果消息 大小超过了 4k,那么,这条消息将会被压缩。
       校验工作的方法:
       Validators.checkMessage(msg, this.defaultMQProducer);

       如果消息大小 大于 4k,那么,这条消息将会被压缩。
       // 尝试着去压缩消息。原生消息 >4k ,将压缩消息

       if (this.tryToCompressMessage(msg)) {
        sysFlag |= MessageSysFlag.CompressedFlag;
}

       这样,最终 broker 保存了是 经过压缩后的消息的。但在哪里解压呢?其实,压缩后的消息是在 消费端进行解的。                                          
       Rocketmq 的解压消息的工具类及方法:
       解压工具:UtilAll.uncoress
     
       客户端在拉取消息后,会进行消息的处理的,如果这条消息是曾经压缩过的,那么,将会被解压的。否则,按照正常逻。
      。这里写图片描述走。

0 0
原创粉丝点击