V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
wmhack
V2EX  ›  Kafka

kafka 疑惑,为什么随着 topic 增加,性能会急剧下降

  •  
  •   wmhack · 2019-09-12 11:38:23 +08:00 · 9315 次点击
    这是一个创建于 1934 天前的主题,其中的信息可能已经有所发展或是发生改变。

    网上很多文章拿 rocketmq 与 kafka 比,都说 kafka 在 topic 超过 200 个的时候,性能急速下降,而 RocketMq 性能稳定。

    但是都没有说原因,想问问各位大神,这是什么原因造成了 kafka 性能下降,而 RocketMQ 性能稳定呢?

    还有,当消息大小超过 2048 的时候,kafka 性能也会下降,RocketMq 性能稳定,这又是什么原因呢?

    6 条回复    2019-09-12 18:06:42 +08:00
    Yuicon
        1
    Yuicon  
       2019-09-12 11:44:08 +08:00
    搜索引擎会告诉你答案
    wmhack
        2
    wmhack  
    OP
       2019-09-12 11:52:06 +08:00
    @Yuicon 没搜到,都只是说 kafka 性能会下降,推荐使用 RocketMQ
    Yuicon
        3
    Yuicon  
       2019-09-12 12:01:09 +08:00
    @wmhack 我搜了下,基本都是说数量多了导致硬盘到了上限。

    我直接复制你的 “kafka 在 topic 超过 200 个的时候,性能急速下降” 百度的,不知道你是怎么搜的。
    allen9527
        4
    allen9527  
       2019-09-12 12:03:07 +08:00
    全局看,topic 多会变成随机读,so。。。
    arrow8899
        5
    arrow8899  
       2019-09-12 14:03:35 +08:00
    kafka 每个 topic 对应一个 log file,单独的 log file 是磁盘顺序读写的,所以很快;
    但是 topic 过多,由于每个 topic 是分开读写的,所以就变成随机读写了;
    官方推荐是用大的 topic 来代替过多的小的 topic ;
    https://cwiki.apache.org/confluence/display/KAFKA/FAQ#FAQ-HowmanytopicscanIhave?
    troywinter
        6
    troywinter  
       2019-09-12 18:06:42 +08:00
    RocketMq 和 Kafka 的性能基线就不在一个水准上,Kafka 利用顺序读写已经把一个 MQ 的性能压榨到比较极限的水准了,超高的性能也带来了一些问题,每一个 topic 在硬盘上用一个 logfile 表示,通过顺序读写可以使性能非常高,但当多个 topic 的多个 partition 分布在同一台机器上时,原本的顺序读写就变为随机读写,partition 越多,随机就越严重,apache pulsar 解决了这个问题是使用 bookkeeper 做 store,这样做同时也降低了性能基线,业务需要很高的性能时,用 Kafka 没错,堆机器就行了,没钱堆机器时也不需要那么高的性能。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   946 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 21:11 · PVG 05:11 · LAX 13:11 · JFK 16:11
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.