MQ消息队列发展史:
1. 早期的消息队列:早期的消息队列主要是基于主机内存的消息传递系统,它们通常用于进程间通信和数据传输。
2. 第一代消息队列:第一代消息队列主要是基于消息传递中间件(Middleware)的架构,如IBM MQSeries和TIBCO Rendezvous等。这些系统使用了独立的消息服务器来中转和传递消息。
3. 第二代消息队列:第二代消息队列主要是基于开源中间件的架构,如ActiveMQ和RabbitMQ等。这些系统通过网络和协议来进行消息的传递和处理。
4. 第三代消息队列:第三代消息队列主要是基于分布式架构的消息队列系统,如Kafka和RocketMQ等。这些系统通过分布式存储和复制来实现高可用性和可扩展性。
MQ通用架构:
MQ通用架构一般包含以下几个主要组件:
1. 生产者(Producer):负责产生和发送消息。
2. 消费者(Consumer):负责接收和处理消息。
3. 队列(Queue):用于存储消息的容器,生产者将消息发送到队列,消费者从队列中接收消息。
4. 消息服务器(Message Broker):负责接收生产者发送的消息,并将其存储到队列中,同时将消息推送给消费者。
5. 消息协议(Message Protocol):用于定义消息的格式和传输协议,常见的消息协议有AMQP(Advanced Message Queuing Protocol)、MQTT(Message Queuing Telemetry Transport)和STOMP(Simple Text Oriented Messaging Protocol)等。
6. 路由(Routing):负责将消息从生产者路由到相应的队列或消费者。
7. 持久化(Persistence):将消息存储到磁盘中,以避免消息丢失。
8. 可靠性保证(Reliability Guarantee):确保消息的可靠传递和处理,如消息的重试和故障恢复机制。
9. 监控和管理(Monitoring and Management):提供监控和管理消息队列的功能,如消息的统计、调优和故障排查等。