美文网首页
(11)如何确定合适分区数(1)

(11)如何确定合适分区数(1)

作者: hedgehog1112 | 来源:发表于2021-03-02 11:23 被阅读0次

Kafka高吞吐量,就是通过partition将topic中消息存到Kafka集群不同broker中。partition并行度调优最小单元

理论分区越多,吞吐量就越大。

一、实际分区过多弊端:

1、客户端/服务器端需内存就越多

1)Kafka0.8.2后,producer参数batch.size(默认16KB),为每个分区缓存消息,积累一定大小或时间,移除发往broker分区多,内存占用多

2)consumer消费线程数也增加。如10000个分区,创建10000个线程,创建大约10000个Socket获取分区数据。线程的开销成本高

3——服务器端缓存成本大,服务器端维护controller,FetcherManager等

2、文件句柄的开销

broker每个partition对应磁盘一个目录。每个日志数据分配索引和数据文件打开index文件句柄和数据文件句柄。partition多,句柄数也多,超过操作系统文件句柄数量限制

3、能增加端对端的延迟

延迟时间:producer发送 到 consumer接收时间

    1)问题原因:producer消息提交后暴露。例,所有in-sync副本同步复制完才暴露。复制时间是延迟最原因。默认broker只分配一个线程复制。

    2)解决:增大kafka集群缓解。例,1000个分区leader放1个/10个broker节点,延迟差异。每个broker节点平均处理100个分区,数十毫秒变几毫秒

    3)根据经验b个broker节点和复制因子r,整个kafka集群partition数量<=100*b*r个,即单partition的leader<=100。

4、降低高可用性

partition多个副本,在不同broker,一个leader,其他follower

1)集群自动化管理副本,通过leader确保同步。broker故障里面partition不可用controller节点broker自动选leader,接收请求。从zk读和改影响partition元数据信息。

2)broker停止服务前,controller将该broker所有leader一个个移走。从客户层面看,系统在很小时间不可用

3)broker意外停服(kill -9方式),不可用时间受影响partition数有关:如2节点集群2000partition,每个2个副本。一个broker宕1000个partition同时不可用。每个partition 5ms恢复,1000个5秒钟。

4)恢复慢:controller节点broker宕:选举恢复到新broker不启动,自动错误恢复,但新的controller要从zk中读每个partition元数据用于初始化数据。partition多不可用时间长

总之,partition多带高吞吐量。但partition过大过多,对可用性和消息延迟带负面影响

二、如何确定合理分区数?

partition均衡负载是吞吐量关键,根据生产和消费者目标吞吐量估计。

测试topic的producer和consumer吞吐量,Tp和Tc,MB/s。目标吞吐量TtnumPartitions = Tt / max(Tp, Tc)

https://mp.weixin.qq.com/s/0EGp8V_OwbU47nHCzUWLuA

相关文章

  • (11)如何确定合适分区数(1)

    Kafka高吞吐量,就是通过partition将topic中消息存到Kafka集群不同broker中。partit...

  • 历史性难题——如何为Kafka挑选合适的分区数?

    如何为Kafka挑选合适的分区数?很多人都为这个问题伤过脑筋。 从吞吐量方面考虑,增加合适的分区数可以很大程度上提...

  • kafka2:性能优化

    参考 kafka 技术分享 如何确定Kafka的分区数,key和consumer线程数,以及不消费问题解决 k...

  • Kafka分区数确定

    Kakfa分区数 1)创建一个只有1个分区的topic 2)测试这个topic的producer吞吐量和consu...

  • 一:表的优化与列类型的选择

    1.选择合适的数据类型 数据类型的选择,重点在于合适二字,如何确定选择的数据类型是否合适 列选择原则 使用简单的数...

  • Spark的优化

    1.RDD重新分区 针对大量小分区的RDD,使用RDD重分区函数coalesce将小分区合并成大分区;同样当分区数...

  • PostgreSQL 源码解读(98)- 分区表#4(数据查询路

    在查询分区表的时候PG如何确定查询的是哪个分区?如何确定?相关的机制是什么?接下来几个章节将一一介绍,本节是第一部...

  • broker配置的选择与优化

    1.分区数(num.partition)的选择 num.partition指定新创建的主题的分区数,只能增,不能减...

  • 斯坦福商业决策课,

    二、优质决策要素。 1:合适的框架。 什么是合适的框架? 如何确定这是合适的框架? 框架里的内容是什么? 从不同的...

  • A(7)Kakfa分区数

    分区数并不是越多越好,一般分区数不要超过集群机器数量。分区数越多占用内存越大(ISR等),一个节点集中的分区也就越...

网友评论

      本文标题:(11)如何确定合适分区数(1)

      本文链接:https://www.haomeiwen.com/subject/jlnofltx.html