消息对列:异步,解耦,削峰
在使用消息对列的时候,常常遇到的问题是:如何保证生成者消息发送成功了,或者是如何保证消费者消费到了消息。在这个过程中,一般采用的是确认加重试机制完成。
在这个过程中,生产者可能会触发重试机制,消息对列也可能会触发重试机制,那么消费者这边就可能会发生重复消费的问题。
解决办法:
1. 采用CAS乐观锁的方式来解决
2. 采用对账的方式,在消费者这边需要被改变的id,如果已经被修改了就存进表中或者redis中,下次要改变先查询一下有没有被执行过。例如订单号。
在使用消息对列的时候,常常遇到的问题是:如何保证生成者消息发送成功了,或者是如何保证消费者消费到了消息。在这个过程中,一般采用的是确认加重试机制完成。
在这个过程中,生产者可能会触发重试机制,消息对列也可能会触发重试机制,那么消费者这边就可能会发生重复消费的问题。
解决办法:
1. 采用CAS乐观锁的方式来解决
2. 采用对账的方式,在消费者这边需要被改变的id,如果已经被修改了就存进表中或者redis中,下次要改变先查询一下有没有被执行过。例如订单号。