spring cloud stream中关于kafka生产消费大数据量的配置问题
1 基础了解
producer:生产者,Spring Cloud Stream kafka应用程序
broker: kafka服务
consumer:消费者,Spring Cloud Stream kafka应用程序
待解决的问题:
- kafka生产消费大数据量的配置问题
这个问题会是的应用程序抛异常:
kafka.common.MessageSizeTooLargeException。
我们不看代码,从问题出发,去思考一下。kafka需要从生产者(应用程序A)接受一个具有大数据量的message,然后,将该大数据量的message发送给消费者(应用程序B)。这是一个基本流程。
2 配置步骤
生产者(应用程序A):我不管你(broker)受不受得了,我就是要发大数据量的消息,我任性。
broker:你不管人家受不受的了,你就这么来,我不接受(拒接接受这么大的消息)。
broker:我这里有不少大数据量的消息,我就要发给消费者(应用程序B),我也任性。
消费者(应用程序B):你不管人家受不受的了,你就这么来,我也不接受(拒接接受这么大的消息)。
从上面的对话,我们发现这三个家伙 (生产者(应用程序A),broker,消费者(应用程序B))都有各自的问题。于是他们思考的自身的问题也做出了改变。
生产者(应用程序A):你(broker)多大的数据受的了哇?我听你的,告诉我一下呗。于是有了生产者(应用程序A)一端的配置。
broker:我可以接受10M(比默认的1M大得多了)的message(这小子生产者(应用程序A)说不定一冲动发了11M呢?我还的留点余量11M吧!)