【热点】Kafka与传统中间件(MQ,ETL,ESB)的比较

本文涉及的产品
性能测试 PTS,5000VUM额度
云原生网关 MSE Higress,422元/月
注册配置 MSE Nacos/ZooKeeper,118元/月
简介:
    自从Linkin开源Kafka之后,它似乎成了可以叫嚣所有传统消息中间件产品的行业新宠。事实上他也确实成为了大规模消息、微服务解耦以及可靠轻量流处理的业界标准解决方案。
    我们知道在传统企业的数据汇聚层,往往会涉及到四到五种产品或者是开源的框架并且支持高可用和横向扩展。
    ![1](https://yqfile.alicdn.com/dd6c1a62c4b2f17f32f0db22e0732812017e1e18.jpeg)
    上述架构首先会带来技术栈的多样化,包括有:

集成化平台(ETL/ESB)加上额外的“可选”组件;
消息系统(消息队列,点到点RPC调用);
内存缓存或数据网格;
数据库;
流数据引擎;
API网关

    对于企业而言,技术的多样性从来不是好事,这意味着需要招募不同技术特长的人员,缺乏端到端的扩展性,要为每个场景设置中继(例如大型企业内部会有几百组MQ集群),每个组件需要分别维护和配置管理且版本依赖性强。
    我们看到近些年很多中间件公司都出现了衰败的现象,像IBM,Oracle。主要是因为IT生态圈出现了重要转变,伴随着企业数字化转型的五大趋势,系统间事务处理进入了大规模、快速度和高效率的时代

2

    在这样的大趋势下,传统的紧耦合、有限规模、组件复杂的传统技术栈开始出现严重的性能瓶颈。架构师们意识到需要转变交互思路,可能一个简单的、可扩展的、松耦合的基于事件的平台才能解决实时性大数据并发处理的难题。

3

    广义上说事件可以是一期市场活动,一张发票,一笔交易或一次客户体验等等,基于事件的平台以事件为核心建立系统间的交互。在这个平台上,数据库和数据仓库的接口功能被弱化,甚至其本身不再是通过CRUD来编辑数据,而是作为事件的持久化存储(数据仓库)以及面向应用对事件进行优化展示(数据库)。

4

    而流处理/实时处理平台是事件驱动交互的基石。它向企业提供了全局化的数据/事件链接(不同业务只需明确是数据生产者还是消费者即可)、即时数据访问、单一系统统管全域数据以及持续索引/查询能力。

5

    Apache Kafka就是这样一个实时事件处理平台,可以将各类应用的事务流按照主题分类并分发给对应的订阅者/消费者。它的吞吐量也是受到广泛验证的,比如其创始公司领英的每日消息处理量超过4,500,000,000,000条,Netflix日均处理量在6PB以上。

6

    而且,Kafka平台几乎不涉及其他技术栈,它的消息系统、持久化存储和缓存用的都是自身的内核,实时和批处理工作在客户端完成,数据集成靠自身的连接器,流处理有自身的流式引擎KSQL,请求/响应机制通过REST代理完成。
    市场上的同类产品早先有ActiveMQ和RabbitMQ,在领英将Kafka开源后,市场几乎被垄断。直到阿里基于Kafka研制出了新的Apache顶级项目RocketMQ,并且经过双十一的高压打磨后,Kafka才真正有了市场竞争对手,

7

相关文章
|
17天前
|
消息中间件 存储 Java
RocketMQ(一):消息中间件缘起,一览整体架构及核心组件
【10月更文挑战第15天】本文介绍了消息中间件的基本概念和特点,重点解析了RocketMQ的整体架构和核心组件。消息中间件如RocketMQ、RabbitMQ、Kafka等,具备异步通信、持久化、削峰填谷、系统解耦等特点,适用于分布式系统。RocketMQ的架构包括NameServer、Broker、Producer、Consumer等组件,通过这些组件实现消息的生产、存储和消费。文章还提供了Spring Boot快速上手RocketMQ的示例代码,帮助读者快速入门。
|
2月前
|
消息中间件 存储 RocketMQ
消息中间件-RocketMQ技术(二)
消息中间件-RocketMQ技术(二)
|
2月前
|
消息中间件 存储 中间件
消息中间件-RocketMQ技术(一)
消息中间件-RocketMQ技术(一)
|
3月前
|
消息中间件 Java Kafka
消息传递新纪元:探索RabbitMQ、RocketMQ和Kafka的魅力所在
【8月更文挑战第29天】这段内容介绍了在分布式系统中起到异步通信与解耦作用的消息队列,并详细探讨了三种流行的消息队列产品:RabbitMQ、RocketMQ 和 Kafka。其中,RabbitMQ 是一个基于 AMQP 协议的开源消息队列系统,支持多种消息模型;RocketMQ 则是由阿里巴巴开源的具备高性能、高可用性和高可靠性的分布式消息队列,支持事务消息等多种特性;而 Kafka 作为一个由 LinkedIn 开源的分布式流处理平台,以高吞吐量和良好的可扩展性著称。此外,还提供了使用这三种消息队列发送和接收消息的代码示例。总之,这三种消息队列各有优势,适用于不同的业务场景。
65 3
|
27天前
|
消息中间件 编解码 Docker
【Docker项目实战】Docker部署RabbitMQ消息中间件
【10月更文挑战第8天】Docker部署RabbitMQ消息中间件
71 1
【Docker项目实战】Docker部署RabbitMQ消息中间件
|
11天前
|
消息中间件 存储 监控
ActiveMQ、RocketMQ、RabbitMQ、Kafka 的区别
【10月更文挑战第24天】ActiveMQ、RocketMQ、RabbitMQ 和 Kafka 都有各自的特点和优势,在不同的应用场景中发挥着重要作用。在选择消息队列时,需要根据具体的需求、性能要求、扩展性要求等因素进行综合考虑,选择最适合的消息队列技术。同时,随着技术的不断发展和演进,这些消息队列也在不断地更新和完善,以适应不断变化的应用需求。
58 1
|
11天前
|
消息中间件 存储 Java
吃透 RocketMQ 消息中间件,看这篇就够了!
本文详细介绍 RocketMQ 的五大要点、核心特性及应用场景,涵盖高并发业务场景下的消息中间件关键知识点。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。
吃透 RocketMQ 消息中间件,看这篇就够了!
|
27天前
|
消息中间件 存储 监控
说说如何解决RocketMq消息积压?为什么Kafka性能比RocketMq高?它们区别是什么?
【10月更文挑战第8天】在分布式系统中,消息队列扮演着至关重要的角色,它不仅能够解耦系统组件,还能提供异步处理、流量削峰和消息持久化等功能。在众多的消息队列产品中,RocketMQ和Kafka无疑是其中的佼佼者。本文将围绕如何解决RocketMQ消息积压、为什么Kafka性能比RocketMQ高以及它们之间的区别进行深入探讨。
65 1
|
15天前
|
消息中间件 中间件 Kafka
解锁Kafka等消息队列中间件的测试之道
在这个数字化时代,分布式系统和消息队列中间件(如Kafka、RabbitMQ)已成为日常工作的核心组件。本次公开课由前字节跳动资深专家KK老师主讲,深入解析消息队列的基本原理、架构及测试要点,涵盖功能、性能、可靠性、安全性和兼容性测试,并探讨其主要应用场景,如应用解耦、异步处理和限流削峰。课程最后设有互动答疑环节,助你全面掌握消息队列的测试方法。
17 0
|
3月前
|
消息中间件 Java 测试技术
消息中间件RabbitMQ---SpringBoot整合RabbitMQ【三】
这篇文章是关于如何在SpringBoot应用中整合RabbitMQ的消息中间件。内容包括了在SpringBoot项目中添加RabbitMQ的依赖、配置文件设置、启动类注解,以及如何通过单元测试来创建交换器、队列、绑定,并发送和接收消息。文章还介绍了如何配置消息转换器以支持对象的序列化和反序列化,以及如何使用注解`@RabbitListener`来接收消息。
消息中间件RabbitMQ---SpringBoot整合RabbitMQ【三】

相关产品

  • 云消息队列 Kafka 版
  • 云消息队列 MQ