消息队列 - Spring Boot 对rabbitmq批量处理数据的支持
一丶前言
在生产中,存在一些场景,需要对数据进行批量操作。如,可以先将数据存放到redis,然后将数据进行批量写进数据库。但是使用redis,不得不面对一个数据容易丢失的问题。也可以考虑使用消息队列进行替换,在数据持久化,数据不丢失方面,消息队列确实比redis好一点,毕竟设计不一样。是不是使用消息队列,就一定好呢?不是的,首先使用消息队列,不能确保数据百分百不丢失,(如果要做到百分百不丢失,设计上就会比较复杂),除此之外,还要面对数据重复的问题。消息丢失,消息重复,是使用消息队列必须面对的问题。
AMQP在协议上规定每次只能传送一条数据,因此做批量数据操作,需要在应用层上定义,Spring 目前已经提供 (来源资料)
M-m-m. No, there is no such a functionality. Only one message can be read at a time from the queue. And it is on the protocol level. That's why we have introduced that artificialBatchingRabbitTemplateto batch on the application level, before protocol.–Artem Bilan
二丶spring rabbit mq 支持批量操作的版本
关于起始版本,笔者尚未查找到佐证资料,目前笔者所使用的是2.2.2版本
批量发送