如何保证消息不会重复消费(幂等性)
保证消息不被重复消费,可以理解为保证消息的幂等性
1. 比如你的数据需要写入数据库时,先根据主键判断数据库中是否存在,存在则 Update
2. 如果是 redis 对消息进行操作,因为 redis 是 set 操作,所以消息是幂等性的
3. 如果不是以上2个场景,可以让生产者提供一个全局唯一 id,对消息进行消费的时候根据唯一 id 先去 redis 中查看是否存在,如果存在则不就行消费,如果不存在,先将数据存入 redis 中,再将数据存入
4. 进数据库进行唯一键约束(不是 id,其他的字段),第二次插入的时候会报错不会重复插入数据
5. redis incr 命令
上一篇
下一篇