RabbitMQ 简介
【简单】RabbitMQ 是什么?⭐
RabbitMQ 是一个开源的消息队列中间件,基于 AMQP(Advanced Message Queuing Protocol,高级消息队列协议)标准实现。

RabbitMQ 是一个开源的消息队列中间件,基于 AMQP(Advanced Message Queuing Protocol,高级消息队列协议)标准实现。


Kafka 是一个开源分布式事件流平台。最初由 LinkedIn 开发,现在是 Apache 顶级项目。

RocketMQ 是一个开源分布式消息中间件。最初由阿里巴巴开发,现在是 Apache 顶级项目。
RocketMQ 的核心概念
RocketMQ、消息模型、NameServer、Broker、消息类型ActiveMQ 是 Apache 软件基金会旗下的一个开源消息中间件,由 Java 语言编写。它完全支持 JMS(Java Message Service)规范,提供了企业级的消息传递能力,是早期 Java 生态中最流行的消息中间件之一。
ActiveMQ 主要解决分布式系统中的异步通信、应用解耦、流量削峰、可靠传输等问题。通过引入消息中间件,生产者无需等待消费者处理完毕即可返回,提升了系统的响应速度;同时,生产者和消费者之间的耦合度大大降低,各自可以独立演进和扩展。
ActiveMQ 支持多种语言客户端(Java、C/C++、.NET、Python、Ruby 等),支持多种传输协议(OpenWire、STOMP、MQTT、AMQP 等),既可以作为点对点模型的消息队列使用,也可以作为发布/订阅模型的消息主题使用。它还支持持久化存储(KahaDB、JDBC、LevelDB 等)、消息事务、消息确认机制等企业级特性。
MQ(Message Queue,消息队列) 是一种异步通信机制,用于在不同服务、应用或系统组件之间可靠地传递消息。它的核心思想是解耦生产者和消费者,通过缓冲消息来提高系统的可靠性、扩展性和可维护性。
MQ 的核心概念

消息队列(Message Queue,简称 MQ)技术是分布式应用间交换信息的一种技术。
消息队列主要解决应用耦合,异步消息,流量削锋等问题,实现高性能,高可用,可伸缩和最终一致性架构。是大型分布式系统不可缺少的中间件。
ActiveMQ、JMS、消息中间件、点对点模式、发布订阅Apache RocketMQ 是一个分布式 MQ 和流处理平台,具有低延迟、高性能和可靠性、万亿级容量和灵活的可扩展性。
RocketMQ 由阿里巴巴孵化,被捐赠给 Apache,成为 Apache 的顶级项目。

Kafka 是 Apache 的开源项目。Kafka 既可以作为一个消息队列中间件,也可以作为一个分布式流处理平台。
Kafka 用于构建实时数据管道和流应用。它具有水平可伸缩性,容错性,快速快速性。
Kafka 的存储子系统是其性能与可靠性的基石。作为一个分布式消息中间件与流处理平台,Kafka 需要在每秒数百万级消息写入的高并发场景下,仍然保证消息持久化、低延迟读取以及水平扩展能力。
Kafka 的存储设计完全有别于传统 MQ 的「消息落库」思路:它将消息以**追加写(append-only)**的方式写入分区日志文件,并借助操作系统的 Page Cache、顺序磁盘 I/O、稀疏索引以及零拷贝(sendfile)等技术,使得「磁盘存储 + 高吞吐」成为可能。同时,通过日志段(Log Segment)切分、基于保留策略的过期清理和日志压实(Log Compaction),Kafka 能够在海量数据场景下长期稳定运行。
Kafka 是一个分布式的、可水平扩展的、基于发布/订阅模式的、支持容错的消息系统。
Kafka 使用 Zookeeper 来维护集群成员的信息。每个 Broker 都有一个唯一标识符,这个标识符可以在配置文件里指定,也可以自动生成。在 Broker 启动的时候,它通过创建临时节点把自己的 ID 注册到 Zookeeper。Kafka 组件订阅 Zookeeper 的 /broker/ids 路径,当有 Broker 加入集群或退出集群时,这些组件就可以获得通知。