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

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
简介:
    自从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

相关文章
|
1月前
|
消息中间件 中间件 Kafka
原来RocketMQ中间件可以这么玩
消息队列作为高并发系统的核心组件之一,能够帮助业务系统解构提升开发效率和系统稳定性。主要具有以下优势:
23 0
|
5月前
|
消息中间件 NoSQL 关系型数据库
【Kubernetes部署Shardingsphere、Mycat、Mysql、Redis、中间件Rocketmq、Rabbitmq、Nacos】
【Kubernetes部署Shardingsphere、Mycat、Mysql、Redis、中间件Rocketmq、Rabbitmq、Nacos】
118 0
|
2月前
|
消息中间件 监控 负载均衡
Kafka高级应用:如何配置处理MQ百万级消息队列?
在大数据时代,Apache Kafka作为一款高性能的分布式消息队列系统,广泛应用于处理大规模数据流。本文将深入探讨在Kafka环境中处理百万级消息队列的高级应用技巧。
161 0
|
4月前
|
消息中间件 存储 架构师
RabbitMQ vs Kafka:正面交锋(2)
RabbitMQ 是一个消息代理中间件,而 Apache Kafka 是一个分布式流处理平台。这种差异可能看起来只是语义上的,但它会带来严重的影响,影响我们方便地实现各种系统功能。 例如 Kafka 最适合处理流数据,在同一主题同一分区内保证消息顺序,而 RabbitMQ 对流中消息的顺序只提供基本的保证。
61 1
|
4月前
|
消息中间件 存储 Kafka
RabbitMQ vs Kafka:正面交锋(1)
值得注意的是,无论消费者是否消费了这些消息,Kafka 都会将消息保留在分区中直至预先配置的时间段内。这种保留意味着消费者可以自由地重读过去的消息。此外,开发人员还可以使用 Kafka 的存储层来实现事件溯源和审计日志等机制。
47 1
|
4月前
|
消息中间件 存储 传感器
何时使用Kafka而不是RabbitMQ
在公司项目中,一般消息量都不大的情况下,博主推荐大家可以使用 RabbitMQ。消息量起来了可以考虑切换到 Kafka,但是也要根据公司内部对两种 MQ 的熟悉程度来进行选择,避免 MQ 出现问题时无法及时处理。
76 0
|
5月前
|
消息中间件 存储 Kafka
Kafka 与 RabbitMQ:比较功能和用例
Kafka 与 RabbitMQ:比较功能和用例
259 1
Kafka 与 RabbitMQ:比较功能和用例
|
5月前
|
消息中间件 存储 算法
MQ - 闲聊MQ一二事儿 (Kafka、RocketMQ 、Pulsar )
MQ - 闲聊MQ一二事儿 (Kafka、RocketMQ 、Pulsar )
125 0
|
6月前
|
消息中间件 网络协议 Kafka
RabbitMQ、RocketMQ、Kafka性能为何差距如此之大?
MQ的作用解耦、异步、削峰填谷。 未使用MQ的情况
|
6月前
|
消息中间件 存储 Kafka
RabbitMQ、Kafka和RocketMQ比较
RabbitMQ、Kafka和RocketMQ比较
534 0

相关产品

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