本文介绍: 官方定义消息体默认大小为 4MB,普通顺序消息类型。事务、定时、延时类消息默认大小为64KB。如果超过限制则会抛出异常!但实际工作中,需要使用到MQ进行异步解耦,传输的业务消息偶尔会遇到超过4MB,尤其在业务复杂的系统中,那么我们应该如何处理呢?在我工作实际应用中,有以下几种解决方案。
前言
官方定义消息体默认大小为 4MB,普通顺序消息类型。事务、定时、延时类消息默认大小为64KB。如果超过限制则会抛出异常!
但实际工作中,需要使用到MQ进行异步解耦,传输的业务消息偶尔会遇到超过4MB,尤其在业务复杂的系统中,那么我们应该如何处理呢?
解决方案
方案一:消息压缩
通常我们都是传递json消息数据,然后底层使用字节流进行传输。如果此时json数据超过4MB,则可以考虑进行消息压缩。
原理其实很好理解,比如我们经常使用的压缩包,可以把大文件进行压缩,依次减小文件大小。
那么我们这里需要使用到的就是字符压缩,把json字符串进行压缩,然后进行传输,原理图如下:
经过测试:我们原来5MB的数据可以压缩到230KB,1MB都不到,当然效果和数据以及压缩算法有关。如:大量重复字符则压缩效率就更高。
方案二:消息分割
方案三:OSS存储
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。