作用:
1、解耦:发送者和接收者的解耦,都与中间的消息队列进行交互就好
2、削峰:如秒杀活动中将请求放在队列中,避免突增的QPS
3、异步通信:发送者不需要等待接收者的响应
4、系统解耦与流程协同:比如订单系统可以通过消息队列与库存系统进行交互,实现订单创建、修改、取消等操作。
5、发布/订阅模式(广播模式)
消息队列 | Kafka | |
数据存储方式 | 内存和磁盘 | 磁盘持久化存储 |
消息顺序性 | 顺序存储、顺序消费 | 分区内有序,不同分区不能保证有序,通过消息偏移量(offset)来指定消息的顺序 |
消息传输方式 | 点对点、广播 | 广播 |
可伸缩性和吞吐量 | 单节点或者简单集群的结构,随着负载的增加,吞吐量可能会受到限制 | kafka是分布式系统,具有高度可伸缩性和高吞吐量,可以通过增加kafka的分区和节点来提高吞吐能力 |