消息队列一 整体认识


文章目录

  1. 系统间通信
  2. 为什么用消息队列?
  3. 消息队列的特点?
  4. 消息队列需要应对的重要问题
  5. 重要的几个消息队列

1.系统间通信

  • 大型系统往往会拆分成多个子系统:
    • 分布式应用:一个业务拆分成多个子业务部署在不同服务器上
    • 集群应用:一个业务部署在多台服务器上
  • 系统间如何进行通信?
    • 远程过程调用(RPC)
    • 消息队列(MQ)

2.为什么要用消息队列?

  1. 解耦:调用方和发送方不需要知道对方
  2. 流量削峰:请求持久化,逐步处理
  3. 日志收集:参照2,避免日志成为瓶颈。
  4. 事务最终一致性:分布式事务

3.消息队列模型

  • [生产者] —(消息)—> [处理中心] —(消息)—> [消费者]
    • 生产者(Producer): 产生和发送消息到处理中心
    • 处理中心(Broker): 接受、存储、转发消息
    • 消费者(Consumer):从处理中心获取消息

4.消息队列需要应对的重要问题

  1. 消息堆积
  2. 消息持久
  3. 可靠投递
  4. 消息重复
  5. 严格有序
  6. 高可用-> 集群

5. 常用的消息队列产品