栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

rocketmq发送 the message body size over max value, MAX: 4194304

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

rocketmq发送 the message body size over max value, MAX: 4194304

最近使用rocket发送mq的方式进行系统数据的交互,遇到一个问题,因为有个字段是富文本,所以里面用了很多的图片字段,所以字段很大,导致mq消息超过了4M,导致报错

the message body size over max value, MAX: 4194304,网上找了下发现是因为是消息大小超过了rocketmq的默认大小限制(版本4.5),大概整理的三种方法解决:

一、修改mq配置,同步修改发送端、消费端(慎用)

修改mq服务端的配置maxMessageSize,然后发送端和消费端同步修改默认值,这块网上差的结果是会严重影响mq的性能,所以这块不做详细介绍

二、把超过4M的消息切割成多条消息发送

这个方案是目前比较靠谱的方案,自己封装个实体,比如MessageVo,其中增加一个batchId字段,如果消息是切割后发送的,则生成一个固定的字符串,放在每个拆分的消息里面,如果不用拆分则该id为空,消费端消费后去处理,如果batchId有值,则需要进行合并处理,

该方案比较适合在开发开始前生产端和消费端定好规则,即使后期更改工作量也还好。

三、前端对于大字段做处理(辅助方案)

        大字段基本是因为富文本编辑器里面图片的大小,前端可以做出限制,这样一般来说内容也不会超过4M了,但是如果仍然超过4M,则参考第二个方案

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/891388.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号