learning_notes

学习笔记

View project on GitHub

概念和特性

参考

  1. 消息的模式

    点对点模式: 3个角色: 消息队列 发送者 接收者 每个消息只有一个消费者,接收成功消息后向队列应答成功,一旦消费。消息出队列. 如果希望每个消息都会被成功处理,选择这个模式

    发布订阅模式: 3个角色: 主题 发布者 订阅者 多个发布者将消息发送到Topic,系统将这些消息传递给多个订阅者。

    对比:

    模式 消费者个数 时间依赖 是否应答
    点对点 一个
    发布订阅 多个
时间依赖,消费是否运行,点对点不是必须运行,发布订阅模式,必须有一个订阅者,不然消息作废

为什么需要消息队列?有什么优缺点?

消息队列(MQ)的主要作用:

  • 解耦:生产者和消费者无需直接通信,降低系统耦合度。
  • 异步处理:可以让系统异步执行任务,提高响应速度,如:发送注册邮件短信。
  • 削峰填谷:通过消息堆积缓冲突发流量,防止数据库或服务崩溃。
  • 可靠通信:提供消息持久化、重试机制,确保数据不会丢失。

缺点:

  • 增加系统复杂度:引入 MQ 后,需要处理消息丢失、重复消费、顺序保证等问题。
  • 数据一致性问题:由于 MQ 采用异步方式,可能导致数据不一致。
  • 运维成本高:MQ 需要额外的监控、故障恢复、扩展维护