RocketMQ与kafka对比

RocketMQ和Kafka的区别,以及如何保证消息不丢失和重复消费 4)unclean.leader.election.enable = false 当leader副本发生故障时不会从followers副本中和leader副本同步程度达不到要求的副本中选出leader,降低了消息丢失的可能性。但是这样也会带来重复消费的情况,比如,消费了一半还没提交offset突然挂掉,那么这个消息理论上会被消费两次,这种情况怎么办?当消费者刚拿到这个消息准备进行真正消费的时候,突然挂掉了,消息实际上并没有被消费,但是 offset 却被自动提交了。 阅读详情

       淘宝内部的交易系统使用了淘宝自主研发的Notify消息中间件,使用Mysql作为消息存储媒介,可完全水平扩容,为了进一步降低成本,我们认为存储部分可以进一步优化,2011年初,Linkin开源了Kafka这个优秀的消息中间件,淘宝中间件团队在对Kafka做过充分Review之后,Kafka无限消息堆积,高效的持久化速度吸引了我们,但是同时发现这个消息系统主要定位于日志传输,对于使用在淘宝交易、订单、充值等场景下还有诸多特性不满足,为此我们重新用Java语言编写了RocketMQ,定位于非日志的可靠消息传输(日志场景也OK),目前RocketMQ在阿里集团被广泛应用在订单,交易,充值,流计算,消息推送,日志流式处理,binglog分发等场景。

数据可靠性

  • RocketMQ支持异步实时刷盘,同步刷盘,同步复制,异步复制
  • 卡夫卡使用异步刷盘方式,异步复制/同步复制

    总结:RocketMQ的同步刷盘在单机可靠性上比Kafka更高,不会因为操作系统Crash,导致数据丢失。Kafka同步Replication理论上性能低于RocketMQ的同步Replication,原因是Kafka的数据以分区为单位组织,意味着一个Kafka实例上会​​有几百个数据分区,RocketMQ一个实例上只有一个数据分区,RocketMQ可以充分利用IO组Commit机制,批量传输数据,配置同步Replication与异步Replication相比,性能损耗约20%~30%,Kafka没有亲自测试过,但是个人认为理论上会低于RocketMQ。

性能对比

  • 卡夫卡单机写入TPS约在百万条/秒,消息大小10个字节
  • RocketMQ单机写入TPS单实例约7万条/秒,单机部署3个Broker,可以跑到最高12万条/秒,消息大小10个字节

    总结:Kafka的TPS跑到单机百万,主要是由于Producer端将多个小消息合并,批量发向Broker。
    RocketMQ为什么没有这么做?

  1. 制片人通常使用的Java语言,缓存过多消息,GC是个很严重的问题
  2. Producer调用发送消息接口,消息未发送到Broker,向业务返回成功,此时Producer宕机,会导致消息丢失,业务出错
  3. Producer通常为分布式系统,且每台机器都是多线程发送,我们认为线上的系统单个Producer每秒产生的数据量有限,不可能上万。
  4. 缓存的功能完全可以由上层业务完成。
    单机支持的队列数
  • Kafka单机超过64个队列/分区,Load会发生明显的飙高现象,队列越多,load越高,发送消息响应时间变长。Kafka分区数无法过多的问题
  • RocketMQ单机支持最高5万个队列,负载不会发生明显变化
    队列多有什么好处?
  1. 单机可以创建更多话题,因为每个主题都是由一批队列组成
  2. 消费者的集群规模和队列数成正比,队列越多,消费类集群可以越大

消息投递实时性

  • Kafka使用短轮询方式,实时性取决于轮询间隔时间,0.8以后版本支持长轮询。
  • RocketMQ使用长轮询,同Push方式实时性一致,消息的投递延时通常在几个毫秒。
    消费失败重试

  • 卡夫卡消费失败不支持重试。

  • RocketMQ消费失败支持定时重试,每次重试间隔时间顺延

    总结:例如充值类应用,当前时刻调用运营商网关,充值失败,可能是对方压

    力过多,稍后再调用就会成功,如支付宝到银行扣款也是类似需求。

    这里的重试需要可靠的重试,即失败重试的消息不因为Consumer宕机导致丢失。

严格的消息顺序

  • 卡夫卡支持消息顺序,但是一台代理宕机后,就会产生消息乱序
  • RocketMQ支持严格的消息顺序,在顺序消息场景下,一台Broker宕机后,发送消息会失败,但是不会乱序

    MySQL的二进制日志分发需要严格的消息顺序

定时消息

  • 卡夫卡不支持定时消息
  • RocketMQ支持两类定时消息

    • 开源版本RocketMQ仅支持定时级别,定时级用户可定制
    • 阿里云MQ指定的毫秒级别的延时时间
      分布式事务消息
  • 卡夫卡不支持分布式事务消息

  • 阿里云MQ支持分布式事务消息,未来开源版本的RocketMQ也有计划支持分布式事务消息
    消息查询

  • 卡夫卡不支持消息查询

  • RocketMQ支持根据消息标识查询消息,也支持根据消息内容查询消息(发送消息时指定一个消息密钥,任意字符串,例如指定为订单编号)

    总结:消息查询对于定位消息丢失问题非常有帮助,例如某个订单处理失败,是消息没收到还是收到处理出错了。
    消息回溯

  • 卡夫卡理论上可以按照偏移来回溯消息

  • RocketMQ支持按照时间来回溯消息,精度毫秒,例如从一天之前的某时某分某秒开始重新消费消息

    总结:典型业务场景如consumer做订单分析,但是由于程序逻辑或者依赖的系统发生故障等原因,导致今天消费的消息全部无效,需要重新从昨天零点开始消费,那么以时间为起点的消息重放功能对于业务非常有帮助。
    消费并行度

 

  • Kafka的消费并行度依赖Topic配置的分区数,如分区数为10,那么最多10台机器来并行消费(每台机器只能开启一个线程),或者一台机器消费(10个线程并行消费)。即消费并行度和分区数一致。
  • RocketMQ消费并行度分两种情况

    • 顺序消费方式并行度同卡夫卡完全一致
    • 乱序方式并行度取决于Consumer的线程数,如Topic配置10个队列,10台机器消费,每台机器100个线程,那么并行度为1000。
      消息轨迹
  • 卡夫卡不支持消息轨迹

  • 阿里云MQ支持消息轨迹
    开发语言友好性

  • 卡夫卡采用斯卡拉编写

  • RocketMQ采用的Java语言编写
    券商端消息过滤

  • 卡夫卡不支持代理端的消息过滤

  • RocketMQ支持两种代理端消息过滤方式

    • 根据消息变量来过滤,相当于子主题概念
    • 向服务器上传一段Java代码,可以对消息做任意形式的过滤,甚至可以做Message身体的过滤拆分。
      消息堆积能力

理论上Kafka要比RocketMQ的堆积能力更强,不过RocketMQ单机也可以支持亿级的消息堆积能力,我们认为这个堆积能力已经完全可以满足业务需求。

开源社区活跃度

RocketMQ和kafka 的区别 维度RocketMQKafka可靠性同步刷盘/复制,10个9可靠性异步刷盘/复制,可能丢数吞吐量7万-12万TPS(单机)百万级TPS(单机)顺序性严格保证全局顺序仅分区内有序高级功能事务消息、延迟消息、消息查询依赖社区插件,功能较少适用场景金融、电商等高可靠场景日志、大数据流处理选型建议:若业务强依赖可靠性与事务支持,选择RocketMQ;若追求极致吞吐且容忍一定数据风险,Kafka更优。实际场景中,两者亦可结合使用(如核心业务用RocketMQ,日志用Kafka) 阅读详情

相关推荐

RocketMQ与Kafka的对比

一、数据可靠性        RocketMQ支持异步实时刷盘,同步刷盘,同步Replication,异步Replication Kafka使用异步刷盘方式,异步Replication        总结:RocketMQ的同步刷盘在单机可靠性上比Kafka更高,不会因为操作系统Crash,导致数据丢失。 同时同步Replication 也比Kafka异步Replication更可靠,数据完全无...

~爱哭的小孩TnT~ 867

rmq_vs_kafka

RocketMQ与kafka对比(18项差异) 淘宝内部的交易系统使用了淘宝自主研发的Notify消息中间件,使用Mysql作为消息存储媒介,可完全水平扩容,为了进一步降低成本,我们认为存储部分可以进一步优化,2011年初,Linkin开源了Kafka这个优秀的消息中间件,淘宝中间件团队在对Kafka做过充分Review之后,Kafka无限消息堆积,高效...

weixin_33979745的博客 614

RocketMQ与Kafka对比(18项差异)

为了方便大家选型,整理一份RocketMQ与Kafka的对比文档。

欢迎朋友,我是一名十多年开发经验的新手,希望多多指教。 1430

RocketMQ与kafka的区别

一、前言 淘宝内部的交易系统使用了淘宝自主研发的Notify消息中间件,使用MySQL作为消息存储媒介,支持水平扩容。为了进一步降低成本,阿里中间件团队认为Notify可进一步优化。 2011年初,Linkedin开源了kafka, 阿里中间件团队在对kafka做了充分的review之后,被kafka的无限消息堆积能力、高效的持久化速度深深吸引,但同时发现kafka主要定位于日志传输,对于使用在淘...

胜天半子 4万+

企业信息化系统的组成模块-核心业务系统

通过标准化的数据流形成完整的业务闭环,CRM生成的销售订单驱动ERP的生产和采购,ERP将生产计划传递给MES执行,MES报工数据返回ERP进行成本核算,ERP再将交付信息同步给CRM供客户查询。生产管理确保高效交付,缩短订单周期。某贸易公司实施ERP供应链模块后,库存周转率从每年4次提升到8次,库存资金占用从2000万降到1200万,释放800万现金流,同时缺货率从15%降到5%。│ │库存 │ │ MRP │ │ ERP │ │ 云ERP/ │ │。

weiyvyy的博客 694

FlowDroid高级技巧:从基础配置到精准Android静态污点分析实战

静态污点分析是软件安全领域的核心技术,通过追踪数据在程序中的流动路径,识别潜在的隐私泄露与安全漏洞。其原理基于控制流与数据流分析,构建程序执行模型,模拟敏感信息从源头到汇聚点的传播过程。这项技术的核心价值在于能在不运行代码的情况下,系统性地发现隐蔽的数据流问题,为应用安全提供前置保障。在Android应用安全审计、合规检测等场景中,静态污点分析工具如FlowDroid已成为发现数据泄露、硬编码密钥等问题的标准手段。本文聚焦于FlowDroid的高级实战应用,深入探讨如何通过优化配置、调参策略及结果分析,将这

weixin_29324401的博客 367

Kafka与RocketMQ性能对比大揭秘

从文件布局、数据写入方式、消息发送三个方面剖析RocketMQ与Kafka的性能差异的原因。

中间件兴趣圈 1万+

FX2N-2AD模块实战:从硬件连接到FROM/TO指令编程详解

本文详细解析FX2N-2AD模拟量输入模块的硬件连接与FROM/TO指令编程技巧,涵盖BFM缓冲存储器配置、梯形图程序设计及工程实战经验。通过实例演示如何实现精准信号采集与数据处理,特别针对PLC系统中的常见故障提供解决方案,助力工业自动化工程师高效完成设备调试与维护。

prometheus9mon的博客 507

Kafka、RocketMQ、RabbitMQ 对比

Kafka、RocketMQ、RabbitMQ 对比

dzend的专栏 2017

自然语言处理NLP星空智能对话机器人系列:Gavin大咖 Transformer 101问答集 第一问

自然语言处理NLP星空智能对话机器人系列:Transformer 101问答 [让天下没有难学的Transformer] 你问我答系列之一 Gavin大咖第一问: Transformer中的可训练Queries、Keys和Values矩阵从哪儿来? 以上是智华解答,供同学们参考。 星空智能对话机器人系列博客 NLP星空智能对话机器人系列:第二次星空智能对话机器人Zoom线上演示安排 NLP星空智能对话机器人系列:StarSpace: Embed All The Things NLP星空智能对

大模型与Agent智能体 991

【Matlab】matlab代码实现sph溃坝模拟

本文介绍了一个基于MATLAB的SPH溃坝模拟实现。代码使用平滑粒子流体动力学方法,通过建立1000个随机分布的粒子,计算粒子间的相互作用力来模拟流体运动。模拟过程包括初始化参数、粒子创建、密度压力更新、速度位置计算以及可视化展示。核心算法采用poly6Kernel和spikyKernelGradient函数处理粒子间作用力。该示例为二维简化模型,仅包含基本物理参数和计算流程,实际应用需进一步优化扩展。

unber的博客 206

Kafka、RabbitMQ、RocketMQ对比

消息中间件(MQ)的技术选型(Kafka、RabbitMQ、RocketMQ) - 简书首先对MQ的技术选型需要考虑的因素有哪些 业内常用的MQ有哪些呢 每一种MQ的表现如何 这些MQ在同等机器条件下,能抗多少QPS(每秒扛几千QPS还是几万QPS) 性能有多高...https://www.jianshu.com/p/25da4bcc2287首先对MQ的技术选型需要考虑的因素有哪些 业内常用的MQ有哪些呢 每一种MQ的表现如何 这些MQ在同等机器条件下,能抗多少QPS(每秒扛几千QPS还是几万QP

优秀技术文章收录 1294

微信小程序|基于小程序实现人脸识别对比

此文主要通过小程序实现对比人脸相似度,并返回相似度分值,可以基于分值判断是否为同一人。人脸登录、用户认证等场景都可以用到。

商务合作 / 项目定制 / 学习交流。个人vx:lovely_wml 2万+

Kafka 和 RocketMQ 之性能对比

从上面的对比来看,Kafka 在性能上综合表现确实要比 RocketMQ 更加的优秀,但在消息选型过程中,我们不仅仅要参考其性能,还有从功能性上来考虑,例如 RocketMQ 提供了丰富的消息检索功能、事务消息、消息消费重试、定时消息等。笔者个人认为通常在大数据、流式处理场景基本选用 Kafka,业务处理相关选择 RocketMQ。

Java程序员的知识博客 1054

使用 MATLAB/Simulink 构建一个多时间尺度下的微电网经济运行优化策略模型

本文介绍了基于Simulink的多能互补微电网系统建模方法,重点关注多时间尺度下的经济运行优化策略。内容包括:系统背景与目标、微电网结构设计(光伏、风电、储能、柴油发电机等模块)、多时间尺度能量管理架构(日前优化、日内滚动优化、实时控制)的实现步骤,以及仿真运行与结果分析。教程详细说明了如何在Simulink中调用优化算法,设置仿真参数,并提供了进阶研究方向和资源推荐。该模型为研究微电网的经济运行和智能调度提供了完整的仿真平台解决方案。

amy_mhd的博客 170

RK3588 部署 YOLO26-Pose 人体姿态检测:Windows Docker 环境全流程

YOLO26-Pose 在 RK3588 上的部署流程是 PC 端 ONNX 导出 → RKNN 转换(INT8 量化)→ 板端推理。INT8 量化后 YOLO26s-Pose 约 35ms,YOLO26n-Pose 约 15ms,可以覆盖实时姿态检测的需求。后处理是 Python 实现的常见瓶颈——如果帧率不达标,先用 npy 保存模型输出在 PC 上验证解析逻辑的正确性,确认无误后再迁移到 C++ 实现。

m0_64661770的博客 542

【MQ】Kafka与RocketMQ深度对比

本文深入对比了Kafka与RocketMQ两大消息队列的核心差异。RocketMQ采用"架构做减法、功能做加法"的设计理念:简化架构(如用NameServer替代Zookeeper、优化存储模型),同时增强功能(支持消息过滤、事务消息、延迟队列等)。Kafka则专注于极致性能(17万/秒吞吐量)。文章详细分析了两者在存储模型、主从同步、功能特性等方面的技术实现差异,并提供了选型建议:追求性能选Kafka,需要丰富功能选RocketMQ。

weixin_63434398的博客 2079

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

Kafka 和 RocketMq 的对比

Kafka 和 RocketMq 的对比

959 1516

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

kafka 与 RocketMQ对比

消费-线程数(15 分区)

dengjiayue的博客 1373

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

Kafka 与 RocketMQ 性能对比

Kafka 与 RocketMQ 性能对比

杨宇昌的博客 2783

RocketMQ与Kafka差异全面对比

淘宝内部的交易系统使用了淘宝自主研发的Notify消息中间件,使用Mysql作为消息存储媒介,可完全水平扩容,为了进一步降低成本,我们认为存储部分可以进一步优化,2011年初,Linkin开源了Kafka这个优秀的消息中间件,淘宝中间件团队在对Kafka做过充分Review之后,Kafka无限消息堆积,高效的持久化速度吸引了我们,但是同时发现这个消息系统主要定位于日志传输,对于使用在淘宝交易、订单...

FeelTouch Labs 2369

Kafka、RocketMQ、RabbitMQ的对比

点击关注公众号,Java干货及时送达????概述消息中间件是基于队列与消息的传递技术,在项目中被我们广泛应用,为系统提供同步或者异步、可靠的消息传输。在分布式、高并发的应用场景中高效、稳定的进行数据交换。有应用解耦、异步消息、最终一致性、流量削峰、广播等特点。解耦:将消息写入消息队列,需要消息的系统自己从消息队列中订阅;异步:异步方式可以提高执行效率,减少执行时间,生产消息...

这个时代,作为程序员可能要学习小程序 1452

RocketMQ - 与Kafka核心差异对比:架构、性能、适用场景

RocketMQ与Kafka核心差异对比 本文从架构设计、性能表现和适用场景三个维度对比了RocketMQ和Kafka两款主流消息中间件。在架构方面,Kafka采用Zookeeper协调的分布式架构,而RocketMQ通过轻量级NameServer实现服务发现;性能上,Kafka以高吞吐见长,RocketMQ则在低延迟和事务消息方面表现更优;适用场景方面,Kafka更适合大数据日志处理,RocketMQ更适用于电商交易等业务场景。通过深入分析两者在分区机制、消息存储、消费模式等核心特性的差异,为技术选型提供

千淘万漉虽辛苦,吹尽狂沙始到金 2万+

RabbitMQ、RocketMQ、Kafka 对比表格

以下是整合并优化后的。

喝醉酒的小白 782

kafka与RocketMQ对比

kafka与rocketmq的差异,参考链接:http://jm.taobao.org/2016/03/24/rmq-vs-kafka/ 总体 kafka无限消息堆积,高效持久化,适合海量日志处理rocketmq增加了事物支持,适用于订单,交易,充值等场景,支持定时消息,消息重试,消息回溯,广播消费,消息轨迹查询,消息查询等。 消息可靠性 rocketmq支持同步刷盘,异步刷盘

iie_libi的博客 2147
上一篇: 微服务架构的基础框架选择:Spring Cloud还是Dubbo?
下一篇: 分布式服务框架之服务化最佳实践
kobejayandy
博客等级 码龄18年 2853粉丝 43原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值