Kafka 分区数越多性能就越好吗?为什么?
我的理解:
- 每个分区数都对应一个 log 文件,log 文件是顺序写的,但如果有非常多分区同时刷盘,就会变相成乱序写了,我猜想这也是为什么 RocketMQ 一个 broker 只会拥有一个 CommitLog 的原因之一吧;
- 客户端会为每个分区调用一条线程处理,多线程并发地处理分区消息,分区越多,意味着处理的线程数也就越多,到一定程度后,会造成线程切换开销大;
- 其中一个 broker 挂掉后,如果此时分区特别多,Kafka 分区 leader 重新选举的时间大大增加;
- 每个分区对应都有文件句柄,分区越多,系统文件句柄就越多;
- 客户端在会为每个分区分配一定的缓冲区,如果分区过多,分配的内存也越大。
8440

被折叠的 条评论
为什么被折叠?



