消息队列(MQ)

1.什么是消息队列

消息队列(Message Queue, MQ)是一种跨进程通信的方式,用于在分布式系统中解耦不同的组件,实现异步通信和流量削峰。


2.MQ的作用

  • 解耦:生产者和消费者无需直接交互,只需要通过队列进行数据传输。
  • 异步处理:提高系统的吞吐量,减少请求响应时间。
  • 流量削峰:应对高并发场景,防止系统被突发请求压垮。
  • 可靠通信:保证消息不会丢失,提高系统的可靠性。
  • 数据分发:实现一对多或多对多的数据广播。

3.常见MQ组件

  • ActiveMQ:Apache的老牌消息队列,基于JMS规范。
  • RabbitMQ:基于Erlang开发,支持AMQP协议,功能强大。
  • RocketMQ:阿里巴巴开源,专为高吞吐量设计。
  • Kafka:适用于大数据和日志处理

4. MQ 的核心概念

  • 生产者(Producer):发送消息的角色。
  • 消费者(Consumer):接收并处理消息的角色。
  • 消息(Message):生产者发送的具体数据。
  • 队列(Queue):消息存储的容器,消费者从中拉取消息。
  • 主题(Topic):用于发布/订阅模式,消息可被多个消费者接收。
  • 交换机(Exchange):RabbitMQ 的概念,用于路由消息。

5. MQ 的工作模式

5.1 点对点(P2P)

消息被存储在一个队列中,每个消息只能被一个消费者消费。

5.2 发布/订阅(Pub/Sub)

生产者将消息发布到 Topic,多个订阅者都可以接收相同的消息。

5.3 生产-确认-消费机制

生产者发送消息到 MQ。

MQ 确认消息已存储(ACK 机制)。

消费者拉取或接收消息并处理。

消费者处理完成后确认(ACK)。

MQ 删除已确认的消息。



posted @ 2025-03-21 20:06  一喵良  阅读(304)  评论(0)    收藏  举报