消息中间件常见问题及解决方案
消息中间间(activemq, rabbitmq, rocketmq, kafka)
优势:解耦、异步、削峰
- 重复消费问题
1.利用数据库主键唯一性保证重复消费问题;
2.利redis的原子性保证数据不会重复; - 丢消息问题
1.acks设置为All,保证从节点同步后反馈客户端,从而保证不会丢消息; - 消息挤压问题
1.将消息挤压的分区分散到多个分区中,再启动多个消费端;
2.消费端接收到消息后,直接将消持久化到DB中,立即ACK,后面再慢慢处理DB中持久化的数据; - 顺序消费问题
1.可以将消息缓存到一个消息队列中,进行排序后再进行消费;