概念和特性
-
消息的模式
点对点模式: 3个角色: 消息队列 发送者 接收者 每个消息只有一个消费者,接收成功消息后向队列应答成功,一旦消费。消息出队列. 如果希望每个消息都会被成功处理,选择这个模式
发布订阅模式: 3个角色: 主题 发布者 订阅者 多个发布者将消息发送到Topic,系统将这些消息传递给多个订阅者。
对比:
模式 消费者个数 时间依赖 是否应答 点对点 一个 无 是 发布订阅 多个 有 否
时间依赖,消费是否运行,点对点不是必须运行,发布订阅模式,必须有一个订阅者,不然消息作废
为什么需要消息队列?有什么优缺点?
消息队列(MQ)的主要作用:
- 解耦:生产者和消费者无需直接通信,降低系统耦合度。
- 异步处理:可以让系统异步执行任务,提高响应速度,如:发送注册邮件短信。
- 削峰填谷:通过消息堆积缓冲突发流量,防止数据库或服务崩溃。
- 可靠通信:提供消息持久化、重试机制,确保数据不会丢失。
缺点:
- 增加系统复杂度:引入 MQ 后,需要处理消息丢失、重复消费、顺序保证等问题。
- 数据一致性问题:由于 MQ 采用异步方式,可能导致数据不一致。
- 运维成本高:MQ 需要额外的监控、故障恢复、扩展维护