为什么kafka延迟比rocketmq延迟高
Kafka 为什么 延迟 rocketmq
2023-09-27 14:19:47 时间
说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之类低多了。
相关文章
- 报错:java.lang.AbstractMethodError: nl.techop.kafka.KafkaHttpMetricsReporter.logger()Lcom/typesafe/scalalogging/Logger;
- 常用消息队列 Kafka、RabbitMQ、RocketMQ、ActiveMQ 综合对比(18个方面)
- 【48】DMA:为什么Kafka这么快?
- flink与kafka结合
- Apache Kafka监控之Kafka Web Console
- kafka消费者报错INVALID_FETCH_SESSION_EPOCH
- Spring Kafka中通过参数配置解决超时问题
- Flume+Kafka整合案例实现
- SpringBoot集成Kafka
- 【kafka运维】Leader重新选举运维脚本
- ELK + kafka 日志方案
- 大数据学习——SparkStreaming整合Kafka完成网站点击流实时统计
- Kafka实战:集群SSL加密认证和配置(最新版kafka-2.7.0)
- kafka Enabling Kerberos Authentication
- 为什么kafka使用磁盘而不是内存
- kafka libjvm 报错
- Kafka某topic无法消费处理
- 6、多节点集群环境下Kafka的Confluent Platform的下载安装配置手册
- 10. 使用python构建Kafka的生产者和消费者,将txt转换成csv文件
- spring cloud 搭建(kafka入门)