- 什么是消息队列
- 为什么要用分布式消息队列
- 如何设计消息队列
常见的:ActiveMQ Kafka rocketMQ MetaMQ rabbitMQ zeroMQ
为什么要用分布式消息队列
(1)应用解耦,代理业务和设计的扩展性
(2)异步处理
(3)流量削峰
如何设计消息队列
(1)发布订阅的两种模式:push和pull
(2)消息的可靠性:ACK机制
(3)发布者没收到ACK,发布者将消息放进重发队列
(4)消费者已经处理了,也发送ACK了,但发布者没由收到,会重复发送消息,则需要去重处理:去重表、
(5)消息的存储:a.存在内存;b.存在硬盘 可靠的方式是持久化存储
(6)消息一致性
(7)消息队列的高可用
(8)消息的顺序性
【参考】
1.https://tech.meituan.com/2016/07/01/mq-design.html
2.https://blog.csdn.net/jiangyu1013/article/details/81450764