消息队列有哪些?看这篇就清楚了

消息队列有哪些?看这篇就清楚了-mikechen

常见的消息队列有:RabbitMQ、RocketMQ、ActiveMQ、Kafka、ZeroMQ、Pulsar等下面分别详解@mikechen

1.RabbitMQ
消息队列有哪些?看这篇就清楚了-mikechen

RabbitMQ是一个开源的消息队列系统,它实现了AMQP(Advanced Message Queuing Protocol)协议,并提供了丰富的功能,如消息持久化、消息确认、灵活的路由和绑定等。

RabbitMQ官网地址:www.rabbitmq.com

RabbitMQ是erlang语言开发,结合erlang语言本身的并发优势,支持很多的协议:AMQP,XMPP, SMTP, STOMP,性能在万级/秒。

RabbitMQ整体架构图如下所示:

消息队列有哪些?看这篇就清楚了-mikechen

2.Kafka
消息队列有哪些?看这篇就清楚了-mikechen

Apache Kafka是一个分布式的流式平台,它可以处理大规模的实时数据流。

Kafka官网地址:kafka.apache.org

Kafka基于发布-订阅模型,具有高吞吐量和持久性,适用于处理大量实时数据的场景。

Kafka最初是由LinkedIn开发,并于2011年初开源,性能在百万级/秒,其整体架构图如下所示:

消息队列有哪些?看这篇就清楚了-mikechen

 

3.RocketMQ
消息队列有哪些?看这篇就清楚了-mikechen

RocketMQ是一个开源的分布式消息队列系统,由阿里巴巴集团开发并开源,RocketMQ被广泛应用于阿里巴巴集团的内部系统。

RocketMQ具有高吞吐量、低延迟、可靠性强和可扩展性等特点,适用于大规模分布式系统中的消息通信和异步解耦场景。

RocketMQ官网地址:rocketmq.apache.org

RocketMQ参考Kafka而设计的,性能在十万级/秒,其整体架构图如下所示:

消息队列有哪些?看这篇就清楚了-mikechen

 4.Pulsar

消息队列有哪些?看这篇就清楚了-mikechen

Apache Pulsar是一个开源的分布式消息和流处理平台,具有高性能、可扩展性和持久化特性。

Pulsar支持多租户、多数据中心部署和动态扩展,适用于大规模和复杂的消息队列和流处理场景。

Pulsar官网地址:pulsar.apache.org

Apache Pulsar是Apache软件基金会顶级项目,是下一代云原生分布式消息流平台,,其整体架构图如下所示:

消息队列有哪些?看这篇就清楚了-mikechen

5.ActiveMQ
消息队列有哪些?看这篇就清楚了-mikechen

ActiveMQ是Apache基金会的一个开源消息中间件,支持JMS(Java Message Service)规范。

ActiveMQ提供了多种通信模式,如点对点(P2P)和发布-订阅(Pub/Sub),并具有可靠性、可扩展性和高可用性。

ActiveMQ官网地址:activemq.apache.org

 

6.消息队列选型

广泛来说,电商、金融等对事务性要求很高的,可以考虑RocketMQ,技术挑战不是特别高,用 RabbitMQ 是不错的选择,如果是大数据领域的实时计算、日志采集等场景可以考虑 Kafka。

陈睿mikechen

十余年BAT架构经验,资深技术专家,就职于阿里、淘宝、百度等一线互联网大厂。

关注「mikechen」公众号,获取更多技术干货!

后台回复面试即可获取《史上最全阿里Java面试题总结》,后台回复架构,即可获取《阿里架构师进阶专题全部合集

评论交流
    说说你的看法