前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >为什么kafka延迟比rocketmq延迟高

为什么kafka延迟比rocketmq延迟高

作者头像
JavaEdge
发布2022-11-20 16:07:00
1.1K0
发布2022-11-20 16:07:00
举报
文章被收录于专栏:JavaEdge

说kafka延迟比rocketmq延迟高 是有一个前提的 就是topic较多的时候 这个和这2个MQ的数据存储结构有关系的 在topic少的时候延迟基本一致。

kafka的数据存储结构设计师尽可能的保证吞吐量,所以在设计时是尽可能保证log日志小,它的数据结构如下 其中topic是逻辑概念,分区对应就是一个物理文件夹:

所以在topic比较多时,分区文件数量会非常庞大 磁盘顺序读效率还不如随机读效率,则会在topic比较多时 磁盘顺序读就蜕变为随机读,延迟也就高了。

即 kafka 性能对于topic 有阈值(20 个)。

淘宝业务比较复杂,topic会比较多 则为了解决这个痛点 rockertmq 就诞生了 它的数据存储结构 对此做了优化 日志目录只有一个 commit log ,结构如下:

出发点不一样,kafka定位就是处理日志和大数据 在这些业务领域,topic不会太多,延迟问题自然也就没有。

数据存储结构是主要原因,还有就是kafka只支持pull模式。而rocketmq有pull、push两种模式 (虽然这个push模式是假push),push模式延迟肯定是比pull模式延迟低。

push模式是基于pull模式的,本地有个定时线程去pull broker的消息,缓存到本地,然后push到消费线程那边。

rabbit 的push模式 是真的push 所以 延迟最低的就是兔子。 兔子不支持分布式,只支持主从模式 本身设计就是小而美的单机版。cpu消耗比kafka之类低多了。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022/11/19 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档