上一篇 <<<Kafka如何实现分区及指定分区消费
下一篇 >>>Kafka如何保证高吞吐量
队列中的消息本身都是有顺序,都遵循了FIFO的原则。
单台消费者是不存在消息的顺序的问题,但是单机版本的消费吞吐比较低,所以一般消费者肯定要集群。在多个消费者消费同一个队列中的消息时候,有可能产生消息顺序行为错乱的问题。
出现顺序乱的原因或背景
a、同一个订单队列,被多个消费者消费,就会导致顺序错乱
b、同一个订单号的不同行为,被分配到不同的队列里,被不同的消费者消费,也会造成错乱。
解决思想
a、相同行为的消息存放到同一个MQ服务器中
b、最终只会有单个消费者去消费
Kafka如何保证消息顺序性问题
a、相同的业务ID设置为同一个可以,存放到同一个分区中
b、每个分区中有单独对应的一个消费者实现消费
推荐阅读:
<<<消息中间件的核心思想
<<<消息中间件常见问题汇总
<<<基于Netty简单手写消息中间件思路
<<<消息队列常用名词与中间件对比
<<<Rabbitmq基础知识
<<<Rabbitmq示例之点对点简单队列
<<<Rabbitmq示例之工作(公平)队列
<<<Rabbitmq示例之发布订阅模式
<<<Rabbitmq示例之路由模式Routing
<<<Rabbitmq示例之通配符模式Topics
<<<Rabbitmq示例之RPC模式
<<<Rabbitmq队列模式总结
<<<Rabbitmq如何保证消息不丢失
<<<Springboot利用AmqpTemplate整合Rabbitmq
<<<Rabbitmq如何保证幂等性
<<<Rabbitmq的重试策略
<<<Rabbitmq通过死信队列实现过期监听
<<<Rabbitmq解决分布式事务思路
<<<Rabbitmq解决分布式事务demo
<<<Rabbitmq环境安装
<<<Kafka中的专业术语都有哪些
<<<Kafka的设计原理介绍
<<<Kafka集群如何实现相互感知
<<<Kafka如何实现分区及指定分区消费
<<<Kafka如何保证高吞吐量
<<<Kafka集群环境搭建
<<<RocketMQ架构原理
<<<RocketMQ、RabbitMQ和Kafka的对比
<<<SpringBoot整合RocketMQ示例
<<<RocketMQ保证顺序消费demo
<<<RocketMQ如何动态扩容和缩容
<<<RocketMQ如何解决分布式事务
<<<RocketMQ单机版本安装
<<<RocketMQ集群环境程序启用相关知识点
<<<RocketMQ单机做主备实操
<<<RocketMQ所有配置说明