场景:消息可能会被重复消费,要保证其幂等性
方案一:
消息生产者投递消息时每个消息都包含一个全局唯一ID来标识每条消息,建立一张消息日志表,记录消息的id和执行状态,在消息id上加唯一索引。消费的时候,先往消息日志表插入记录,如果插入失败报错duplicate key,那说明消息已经消费过,就不用再消费了,这就保证了幂等性。
这个方案的关键点在于你要保证消息的id是全局唯一,这就涉及到各种技术方案了,比如snowflake、UUID等。
场景:消息可能会被重复消费,要保证其幂等性
方案一:
消息生产者投递消息时每个消息都包含一个全局唯一ID来标识每条消息,建立一张消息日志表,记录消息的id和执行状态,在消息id上加唯一索引。消费的时候,先往消息日志表插入记录,如果插入失败报错duplicate key,那说明消息已经消费过,就不用再消费了,这就保证了幂等性。
这个方案的关键点在于你要保证消息的id是全局唯一,这就涉及到各种技术方案了,比如snowflake、UUID等。