主流消息中间件对比
ActiveMQ: Apache 出品,完全支持 JMS 规范。有丰富的 API,多种集群构建模式使得其成为业界老牌消息中间件。性能一般,在中小型企业中应用广泛。
Kafka: 是Linkedln 开源的分布式发布-订阅消息系统,现归属于 Apache 。Kafka追求高吞吐量,0.8版本开始支持复制,不支持事务,对消息的重复、丢失、错误没有严格要求,适合产生大量数据的数据采集业务。
RocketMQ: 是阿里开源的消息中间件,具有高吞吐量、高可用性,适合大规模分布式系统应用。需要比较专业的人进行维护,商用版收费。
RabbitMQ: Erlang 语言开发,基于 AMQP 协议实现。AMQP 协议更多用在企业系统内,对数据一致性、稳定性、可靠性要求很高的场景。
综上:ActiveMQ 比较可靠稳定,但是性能一般;Kafka 性能很高,但是可靠性要求比较低;RocketMQ 即可靠稳定,性能也高,但是门槛较高,商业版还收费;RabbitMQ 即比较可靠,性能也比较好,还不收费。
RabbitMQ 整体架构
AMQP 核心概念
Server:又称 Broker,接受客户端的连接,实现 AMQP 实体服务
Connection:连接,应用程序与 Broker 的网络连接
Channel:网络信道,几乎所有的操作都在 Channel 中进行,Channel 是进行消息读写的通道。客户端可建立多个 Channel,每个 Channel 代表一个会话任务。
Message:消息&#x