一条数据重复出现两次,数据库里就只有一条数据,这就保证了系统的幂等性。 幂等性,通俗点说,就一个数据,或者一个请求,给你重复来多次,你的确保对应数据是不会改变的,不能出错。
结合业务来思考: 1) 比如你拿一个数据要写库,你先根据主键查一下,如果这个数据都有了,你就别插入了,update一下好吧。 2)比如你写redis,那没问题,反正每次都是set。天然幂等。 3)比如你不是上面两个场景,那做的稍微复杂一点,你需要让生产者发送每条数据的时候,里面加一个全局唯一的id,类似订单id之类的东西,然后你这里消费之后,先根据这个id去比如redis 里查一下,之前消费过么?如果没有消费过,你就处理,然后这个id 写redis.如果消费过了,那你就别处理了,保证别重复处理相同的消息即可。