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

简介:
    自从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

相关文章
|
3月前
|
消息中间件 Java Kafka
消息队列比较:Spring 微服务中的 Kafka 与 RabbitMQ
本文深入解析了 Kafka 和 RabbitMQ 两大主流消息队列在 Spring 微服务中的应用与对比。内容涵盖消息队列的基本原理、Kafka 与 RabbitMQ 的核心概念、各自优势及典型用例,并结合 Spring 生态的集成方式,帮助开发者根据实际需求选择合适的消息中间件,提升系统解耦、可扩展性与可靠性。
253 1
消息队列比较:Spring 微服务中的 Kafka 与 RabbitMQ
|
7月前
|
消息中间件 架构师 Java
美团面试:对比分析 RocketMQ、Kafka、RabbitMQ 三大MQ常见问题?
美团面试:对比分析 RocketMQ、Kafka、RabbitMQ 三大MQ常见问题?
美团面试:对比分析 RocketMQ、Kafka、RabbitMQ 三大MQ常见问题?
|
消息中间件 存储 Java
RocketMQ(一):消息中间件缘起,一览整体架构及核心组件
【10月更文挑战第15天】本文介绍了消息中间件的基本概念和特点,重点解析了RocketMQ的整体架构和核心组件。消息中间件如RocketMQ、RabbitMQ、Kafka等,具备异步通信、持久化、削峰填谷、系统解耦等特点,适用于分布式系统。RocketMQ的架构包括NameServer、Broker、Producer、Consumer等组件,通过这些组件实现消息的生产、存储和消费。文章还提供了Spring Boot快速上手RocketMQ的示例代码,帮助读者快速入门。
|
11月前
|
消息中间件 运维 Java
招行面试:RocketMQ、Kafka、RabbitMQ,如何选型?
45岁资深架构师尼恩针对一线互联网企业面试题,特别是招商银行的高阶Java后端面试题,进行了系统化梳理。本文重点讲解如何根据应用场景选择合适的消息中间件(如RabbitMQ、RocketMQ和Kafka),并对比三者的性能、功能、可靠性和运维复杂度,帮助求职者在面试中充分展示技术实力,实现“offer直提”。此外,尼恩还提供了《尼恩Java面试宝典PDF》等资源,助力求职者提升架构、设计、开发水平,应对高并发、分布式系统的挑战。更多内容及技术圣经系列PDF,请关注【技术自由圈】获取。
|
消息中间件 缓存 监控
go高并发之路——消息中间件kafka
本文介绍了高并发业务中的流量高峰应对措施,重点讲解了Kafka消息中间件的使用,包括常用的Go语言库sarama及其版本问题,以及Kafka的版本选择建议。文中还详细解释了Kafka生产者的四种分区策略:轮询、随机、按Key和指定分区,并提供了相应的代码示例。
366 1
go高并发之路——消息中间件kafka
|
消息中间件 大数据 Kafka
大厂面试高频:Kafka、RocketMQ、RabbitMQ 的优劣势比较
本文深入探讨了消息队列的核心概念、应用场景及Kafka、RocketMQ、RabbitMQ的优劣势比较,大厂面试高频,必知必会,建议收藏。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。
大厂面试高频:Kafka、RocketMQ、RabbitMQ 的优劣势比较
|
消息中间件 存储 Java
吃透 RocketMQ 消息中间件,看这篇就够了!
本文详细介绍 RocketMQ 的五大要点、核心特性及应用场景,涵盖高并发业务场景下的消息中间件关键知识点。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。
吃透 RocketMQ 消息中间件,看这篇就够了!
|
消息中间件 编解码 Docker
【Docker项目实战】Docker部署RabbitMQ消息中间件
【10月更文挑战第8天】Docker部署RabbitMQ消息中间件
630 2
【Docker项目实战】Docker部署RabbitMQ消息中间件
|
消息中间件 存储 Apache
探索 RocketMQ:企业级消息中间件的选择与应用
RocketMQ 是一个高性能、高可靠、可扩展的分布式消息中间件,它是由阿里巴巴开发并贡献给 Apache 软件基金会的一个开源项目。RocketMQ 主要用于处理大规模、高吞吐量、低延迟的消息传递,它是一个轻量级的、功能强大的消息队列系统,广泛应用于金融、电商、日志系统、数据分析等领域。
1224 0
探索 RocketMQ:企业级消息中间件的选择与应用
|
消息中间件 存储 监控
ActiveMQ、RocketMQ、RabbitMQ、Kafka 的区别
【10月更文挑战第24天】ActiveMQ、RocketMQ、RabbitMQ 和 Kafka 都有各自的特点和优势,在不同的应用场景中发挥着重要作用。在选择消息队列时,需要根据具体的需求、性能要求、扩展性要求等因素进行综合考虑,选择最适合的消息队列技术。同时,随着技术的不断发展和演进,这些消息队列也在不断地更新和完善,以适应不断变化的应用需求。
875 1

相关产品

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