赞
踩
一、1个Topic(主题)只创建1个Partition (分区),这样生产者的所有数据都发送到了一个Partition (分区),保证了消息的消费顺序;
二、生产者在发送消息的时候指定要发送到哪个 Partition,这样同一个 Partition 的数据会被同一个消费者消费,从而保证了消息的消费顺序。
在Kafka中,只保证Partition (分区)内有序,不保证Topic所有分区都是有序的。所以Kafka要保证消息的消费顺序,可以有2种方法:
一、局部顺序消息消费,也就是保证同一个消息队列上的消息顺序消费;
二、全局顺序消息消费,即一个Topic下的所有消息都要保证顺序。
在RocketMQ中,消息分为全局有序和局部有序消息。全局有序是一个topic下的所有消息都要保证顺序,如果要保证消息全局顺序消费,可以将该主题的队列数设置为1,牺牲高可用性。局部有序是指保证同一个消息队列上的消息顺序消费。具体来说,可以通过以下方式来实现:
RabbitMQ没有属性设置消息的顺序性,所以在没有前提的情况下说 RabbitMQ消息的消费具有顺序性是错误的。但是,我们可以通过以下方式来实现RabbitMQ消息的顺序消费:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。