kafka topic-broker-partition关系及优化切入点

一个topic对应多个partition,partition分布在多broker上,多broker一起提供kafka服务。
kafka中,Topic是一个存储消息的逻辑概念,可认为为一个消息的集合。物理上,不同Topic的消息分开存储,每个Topic可划分多个partition,同一个Topic下的不同的partition包含不同消息。每个消息被添加至分区时,分配唯一offset,以此保证partition内消息的顺序性。
kafka中,以broker区分集群内服务器,同一个topic下,多个partition经hash到不同的broker。

kafka中关于topic、broker及partition相关参数的几点说明:
1:num.partitions参数
默认值为1,可增加topic的partition数量,不可减少其个数。
kafka集群通过partition对topic进行横向扩展,当有新broker加入kafka集群,可通过hash调用partition个数负载均衡。
partition数量选定标准:

  • 主题吞吐量
  • 单个partition读取数据的最大吞吐量
  • 每个broker包含的partition个数、可用磁盘空间和网络带宽
  • 单个broker对partition个数有限制,partitio越多,占用的内存越多,完成选举所需时间越长。

2:broker间分区分配
保证在broker间平均分布partition副本,每个副本分布在不同的broker上,考虑机架,broker分布可用轮询或哈希。

3:partition不完全首领选举
当分区首领不可用时,一个同步副本会被选为新首领。如果选举过程中,没有丢失数据,选举为完全首领选举。

4:增加分区
增加分区主要是为了扩展topic容量或降低单个partition的吞吐量。
基于key区分partition的topic,改变了partition数量,key与partition之间的映射关系也会发生变化。

总结:

  • topic对应多partition,partition分布在多broker上,多broker一起提供kafka服务。
  • partition作为kafka存储的最小粒度,主要用于topic吞吐量的扩展,partition分主和副,均匀或hash到不同的broker,partition数量过多,占用更多broker,同时副本要求也会增加partition主副本的首领选举成本。

文章同步公众号,欢迎扫码关注
在这里插入图片描述

  • 6
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值