文章目录
- 系统间通信
- 为什么用消息队列?
- 消息队列的特点?
- 消息队列需要应对的重要问题
- 重要的几个消息队列
1.系统间通信
- 大型系统往往会拆分成多个子系统:
- 分布式应用:一个业务拆分成多个子业务部署在不同服务器上
- 集群应用:一个业务部署在多台服务器上
- 系统间如何进行通信?
- 远程过程调用(RPC)
- 消息队列(MQ)
2.为什么要用消息队列?
- 解耦:调用方和发送方不需要知道对方
- 流量削峰:请求持久化,逐步处理
- 日志收集:参照2,避免日志成为瓶颈。
- 事务最终一致性:分布式事务
3.消息队列模型
- [生产者] —(消息)—> [处理中心] —(消息)—> [消费者]
- 生产者(Producer): 产生和发送消息到处理中心
- 处理中心(Broker): 接受、存储、转发消息
- 消费者(Consumer):从处理中心获取消息
4.消息队列需要应对的重要问题
- 消息堆积
- 消息持久
- 可靠投递
- 消息重复
- 严格有序
- 高可用-> 集群