1、为什么使用消息中间件?
异步、削峰、解耦
2、消息中间件选型?
ActiveMQ、RabbitMQ、RocketMQ、Kafka
3、引入消息中间件后,存在哪些问题?
增加系统复杂性、数据一致性、系统可用性
4、使用消息中间后,存在消息重复消费、消息丢失、顺序消费,怎么解决?
4、使用消息中间件,怎么避免重复消费?
保证消费逻辑的幂等性
5、怎么保证幂等性?
基于数据库数据插入、基于数据库条件更新、基于Redis的Key是否存在
三种方式,根据业务的幂等性要求,选择使用数据通过事务来控制、或者直接使用Redis缓存来控制