重复消费问题
ID主键
基于数据库的唯一键来保证重复数据不会重复插入多条,进行消息入库。主键唯一,做异常处理机制。
比如你拿个数据要写库,你先根据主键查一下,如果这数据都有了,你就别插入了,update一下好吧。
Redis
使用redis做幂等处理。
比如你是写redis,那没问题了,反正每次都是set,天然幂等性。
你需要让生产者发送每条数据的时候,里面加一个全局唯一的id,类似订单id之类的东西,然后你这里消费到了之后,先根据这个id去比如redis里查一下,之前消费过吗?如果没有消费过,你就处理,然后这个id写redis。如果消费过了,那你就别处理了,保证别重复处理相同的消息即可。