多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
消息顺序写入queue,如何保证消费结果的顺序性。 主要原理只有一个,消息被写入同一个地方,且消费者同步阻塞的对这个地方进行消费。 下面是对具体消息队列服务的分析。 ## RabbitMQ * **描述** 对queue顺序写入的多条消息,多个消费者并发消费queue,无法保证消费结果的顺序性。 * **方案** 一个consumer对应一个queue,消费者进程同步阻塞 对queue消费 ## Kaffa * **描述** 通过对消息指定key,可以将多条消息写入同一个partition,一个partition对应一个消费者进程。对于消费者端,为了提高消费速度,使用多线程代替多线程,并发执行消息无法确保消息的顺序性。 * **方案** 通过在消费者和多线程之间添加代理,即内存队列,将消费者中需要顺序执行的消息分配到同一内存队列中。