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

2019-09-12 11:38:23 +08:00
 wmhack

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

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

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

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

我直接复制你的 “kafka 在 topic 超过 200 个的时候,性能急速下降” 百度的,不知道你是怎么搜的。
allen9527
2019-09-12 12:03:07 +08:00
全局看,topic 多会变成随机读,so。。。
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
2019-09-12 18:06:42 +08:00
RocketMq 和 Kafka 的性能基线就不在一个水准上,Kafka 利用顺序读写已经把一个 MQ 的性能压榨到比较极限的水准了,超高的性能也带来了一些问题,每一个 topic 在硬盘上用一个 logfile 表示,通过顺序读写可以使性能非常高,但当多个 topic 的多个 partition 分布在同一台机器上时,原本的顺序读写就变为随机读写,partition 越多,随机就越严重,apache pulsar 解决了这个问题是使用 bookkeeper 做 store,这样做同时也降低了性能基线,业务需要很高的性能时,用 Kafka 没错,堆机器就行了,没钱堆机器时也不需要那么高的性能。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/600336

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX