消息队列架构是如何演变的?

2024年 5月 10日 111.9k 0

IBM MQ -> RabbitMQ -> Kafka ->Pulsar, 消息队列架构是如何演变的?

下图显示了架构比较。

消息队列架构是如何演变的?-1

1.IBM MQ

IBM MQ 于 1993 年推出。它最初称为 MQSeries,2002 年更名为 WebSphere MQ。2014 年更名为 IBM MQ。IBM MQ 是一款非常成功的产品,广泛应用于金融领域。其收入在 2020 年仍达到 10 亿美元。

队列管理器是消息队列的逻辑容器。它通过消息通道向其他队列管理器传输数据。队列存储消息。消息是待传输数据的抽象概念。消息头包含路由、存储和交付信息。

2. RabbitMQ

2003 年,金融行业的多家机构希望开发一种标准化的消息传递协议,于是 AMQP(高级消息队列协议)在摩根大通诞生了。与在 API 层面标准化的 JMS(Java 消息传递服务)不同,AMQP 是一种线层面的协议,这意味着它指定了要传输的数据格式。作为 AMQP 的实现之一,RabbitMQ 由 Rabbit Technologies 于 2007 年开发,后被 VMWare 收购。

RabbitMQ 架构不同于 IBM MQ,更类似于 Kafka 概念。生产者向指定交换类型的交换发布消息。它可以是直接、主题或扇出。然后,交换中心根据不同的消息属性和交换类型将消息路由到队列中。消费者据此接收信息。

3. Kafka

2011 年初,LinkedIn 开源了 Kafka,这是一个分布式事件流平台。它以弗朗茨-卡夫卡(Franz Kafka)的名字命名。顾名思义,Kafka 是为写而优化的。它为处理实时数据馈送提供了一个高吞吐量、低延迟的平台。它提供了一个统一的事件日志来实现事件流,在互联网公司中得到广泛应用。

Kafka 定义了生产者、经纪人、主题、分区和消费者。它的简单性和容错性使其能够取代以前的产品,如基于 AMQP 的消息队列。

4. Pulsar

Pulsar 最初由雅虎开发,是一个一体化的消息和流平台。与 Kafka 相比,Pulsar 融合了其他产品的许多有用功能。此外,Pulsar 的架构更加原生云化,在集群扩展和分区迁移等方面提供了更好的支持。

Pulsar 架构分为两层:服务层和持久层。Pulsar 本身支持分层存储,我们可以利用 AWS S3 等更便宜的对象存储来长期持久化消息。

相关文章

JavaScript2024新功能:Object.groupBy、正则表达式v标志
PHP trim 函数对多字节字符的使用和限制
新函数 json_validate() 、randomizer 类扩展…20 个PHP 8.3 新特性全面解析
使用HTMX为WordPress增效:如何在不使用复杂框架的情况下增强平台功能
为React 19做准备:WordPress 6.6用户指南
如何删除WordPress中的所有评论

发布评论