MQ专题之6、MQ专题第6篇:顺序消息如何实现?
一个队列配合一个消费者即可实现,就像火车站买票一样,只开一个窗口,然后让大家排队,即可按顺序购票,先确保顺序消费的消息被投递到同一个队列,消费端需要确保只能有一个消费者,拉取一个消费一个,消费完毕,再拉取另外一条消息。
但是,咱们的系统可能采用集群的方式部署,如果是集群的方式,代码相同,此时就相当于一个队列有多个消费者了,集群中通常有2种方式解决这个问题:
- 分布式锁的方式:上锁成功的机器负责消费,分布式锁建议使用zookeeper或者redis来实现
- 选主的方式:多个机器自己通过选主的方式,只有一台机器会成为master,成为master的机器负责消费消息,选主可以通过zookeeper来实现