kafka的主题和分区

2023-07-01 09:49:16 浏览数 (1)

主题topic

kafka以topic构建消息队列

创建主题需要明确确定:分区数和副本数,zookeeper(旧版)

  • 分区数,确定拆分成多少个队列,增加吞吐
  • 副本数,确定队列的可靠性
  • zookeeper存储基本的信息,比如客户端配置

分区和副本的数量,需要根据业务的吞吐量和稳定性要求进行评估

kafka支持修改topic,支持增加分区,不支持减少分区,这个时候消息队列消息的顺序会受影响,修改时需要三思,另外一个思路是新建一个topic,双写,进行数据切换

常用的工具

  • 自带的shell工具
  • kafka-admin

分区

分区可以通过参数,实现优先副本。分区平衡,代表的是当前topic数据的平衡。但是不代表每个节点都是如此。kafka支持rebalance.enable参数控制计算分区是否均衡,如果分区不平衡,自动进行leader再选举

节点宕机时,kafka支持分区再分配,进行节点迁移

  • kafka不支持自动迁移,比如新增或减少机器,就需要运行脚本进行再迁移了

如何选择合适的分区呢?还是需要从业务场景,软件条件,硬件条件,负载进行选择了。

可以对kafka进行性能测试。

0 人点赞