rokectMq 消息发送超长的问题

最近公司项目使用了 Apache rokectMq 进行消息发送,本人也是第一次接触mq。

领导说要处理下mq消息发送超长。需要进行消息压缩。然而我就进行各种百度,查看相关的问题。

可惜这类问题太少就几个代码片段提供。

后续我根据网上提供的代码段,阅读了下mq发送消息的源码

com.alibaba.rocketmq.client.producer.DefaultMQProducer类寻找77行send发送消息。


img

com.alibaba.rocketmq.client.impl.producer.DefaultMQProducerImpl类寻找391行


img

在继续跟进send方法,最后进入到sendDefultImpl,见名知意,也就是发送(消息)默认的实现方法

img

继续跟进方法进入如下代码


img

一看就理解这方法了吧。尝试压缩消息。继续跟进方法看一看

img

返回值是 true false ,参数是消息,

1.获得消息体

2.进行if判断  消息不为空并且消息长度大于等于其长度(compressMsgBodyOverHowmuch:消息 Body 超过多大开始压缩)

3.就开发进行压缩操作,主要压缩方法就是 UtilAll.compress这方法。想看的继续跟进了。在这里我就不附代码了。

总结:发现rokectmq已经帮助考虑了这点。本人对于rokectmq了解不深,也就刚刚使用阶段。如有大神发现此文章哪里解释不对。望提供其见解,让我摆脱迷茫。谢谢。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容