如何保证消息不会重复消费(幂等性)

2019-08-24  本文已影响0人  七月_JulyFY

保证消息不被重复消费,可以理解为保证消息的幂等性

1. 比如你的数据需要写入数据库时,先根据主键判断数据库中是否存在,存在则 Update

2. 如果是 redis 对消息进行操作,因为 redis 是 set 操作,所以消息是幂等性的

3. 如果不是以上2个场景,可以让生产者提供一个全局唯一 id,对消息进行消费的时候根据唯一 id 先去 redis 中查看是否存在,如果存在则不就行消费,如果不存在,先将数据存入 redis 中,再将数据存入

4. 进数据库进行唯一键约束(不是 id,其他的字段),第二次插入的时候会报错不会重复插入数据

5. redis incr 命令

上一篇 下一篇

猜你喜欢

热点阅读