06 MQ重复消费 顺序消费

重复发送消息,怎么保证消息不被重复消费呢?

让消费消息的操作具有幂等性,一个操作具有幂等性是指这个操作任意多次执行所产生的影响与一次执行的影响相同。具体的实现有:

  1. 利用数据库的唯一约束实现幂等
    每当要消费一条消息时,就先将其插入到数据库中,由于唯一性约束,相同的消息只会被插入一次。
  2. 利用redis的SETNX命令也可以

你是怎么保证消息按顺序消费?

RocketMQ一个topic可以有多个分区,它可以分区中顺序消费,但是不能保证每个topic顺序消费,如果想要保证每个topic顺序消费的话,那么就只为一个topic设置一个分区。
或者发送消息时指定发送的分区。

你可能感兴趣的:(09,消息队列)