hash(key) / partition数量

发布时间:2025-06-24 19:25:39  作者:北方职教升学中心  阅读量:410


--zookeeper。zk。 hash(key) / partition数量。# 检查调整进度。cd。
在这里插入图片描述

2.3 修复parition。

  1. 停止部分kafka节点,使得__consumer_offsetspartition:41-1(正好记录test5的数据消费信息)
# 停止相关kafka节点的计划任务。

在这里插入图片描述

  1. 验证topic的读写情况。kafka。./bin/kafka-console-consumer.sh。
  2. 两者逻辑相同。

    在这里插入图片描述

    2.2 停止kafka模拟leader;-1。./bin/kafka-topics.sh。 kill。当发生单机故障时,leader=topic-partition出现在一些topition中;-1,相应的partition无法正常读写数据。# 调整__consumer_offsetspartition:41配置信息,选0作为leader。grep。

    本文记录了工作中遇到的修复经验,并整理。/kafka/brokers/topics/__consumer_offsets/partitions/41/state。 --topic。 --topic。

  3. 2. 修复测试。
  4. 内置topic __consumer_offsets,ofset信息记录业务topic的消费。config/server.properties。crontab。./bin/kafka-console-producer.sh --broker-list localhost:9092。# 检查集群的topic信息。--partitions。broker.id。
    • 3.1 kafka在进行数据消耗时,如果有partitionleader=-1,在数据生产和消费时,kafka是否会自动删除相应的parition?
  5. 4. 参考文件。}。 --topic。config/server.properties。zookeeper。/usr/local/services/kafka_2.11-1.1.1。 --group。/usr/local/services/kafka_2.11-1.1.1。--reassignment-json-file replication-factor.json。

    如果kakfa在hash时需要考虑partitionleader=-1.情况,调整相应的hash规则,相应的数据消费端也需要调整,整体影响很大,所以kafka没有这样考虑。0]。

    在这里插入图片描述

    # 获取kafka的zk地址。# 执行调整命令。|。cd。
  6. 1. 背景描述

    部分环境发现,支持kafka部分topic的被设置为单副本。./bin/kafka-console-consumer.sh。

    在这里插入图片描述

    2.4 检查生产消费是否恢复。/usr/local/services/kafka_2.11-1.1.1。zk。

    1. 由于__consumer_offsetspartition:41(test5的消费记录保存在paritition中)单副本,并且相应的节点已经停机,因此,--describe。# 获取__consumer_offsetspartition:配置信息41。test5。/usr/local/services/kafka_2.11-1.1.1。

    1. 继续验证topic的生产和消费,已恢复正常。

      2. 修复测试。# 登录zk节点󿀌并且进入zk。]。

      这里将kafkatopic-parition设置为两种类型。/usr/local/services/kafka_2.11-1.1.1。test5 --replication-factor。

      生产数据时,会通过的方式。$zk。$zk。}。# 控制台2#xff0c;创建数据生产者。grep。=xx.xx.xx.xx:2181/kafkabin/kafka-topics.sh。|。 --zookeeper。 --execute。

    2. 2.3 修复parition
    3. 2.4 维修完成后,-e。
    # 获取kafkaid。但在创建topic时,cat。./bin/kafka-reassign-partitions.sh。

    在这里插入图片描述

    3. 问题与思考。

    1。$zk。并且每个kafka的id。/data/zookeeper-3.4.14/bin./zkCli.sh。

    2.1 创建正常的topic并验证生产和消费

    1. 获取kafka配置zk链接信息,leader=-topic-partition、"__consumer_offsets","partition":41,"replicas":。
    # 创建topic。ps。[。--zookeeper。cd。特别是kafka内置的topic __consumer_offsets,__consumer_offsets 记录topic消费组数据消费的相关信息,如果出现这个问题,会导致一些topic消费群体无法正常消耗数据。 {。 --group。grep。cd。test5 --bootstrap-server localhost:9092 --from-beginning。# 检查集群的topic信息。zk中的元数据࿰需要调整c;重新给__consumer_offsetspartition:isr和leader-xff0041配置c;让它恢复正常。
    # 获取zk信息。# 控制台2󿀌创建数据生产者。__consumer_offsets。--reassignment-json-file replication-factor.json。
# 获取zk信息。|。

# 获取zk信息。
# 控制台1,创建数据消费者。"any"]。set。
  • 2.2 停止kafka模拟leader;-1。,"log_dirs":。 |。

    • 业务topic,生产和消费业务数据。# 停止相关kafka进程。[。
  • 说明调整完成󿀌此时应该是leader:0 ,replica: [0], isr: [0]。需要多份副本,并通过监控操作等手段及时发现leader=-1.partition,并及时修复。--describe。test5。zk。(也可以指定partition)到相应的partition󿼌 只有与相应的paritition对应,验证生产消费是否恢复

  • 3. 问题与思考。
    • 2.1 创建正常的topic并验证生产和消费。"topic":。 |。 --topic。$zk。

      3.1 kafka在进行数据消耗时,如果有partitionleader=-1,在数据生产和消费时,kafka是否会自动删除相应的parition?

      不会。

      4. 参考文档。cat。 --verify。 --zookeeper。$zk。 4。./bin/kafka-reassign-partitions.sh。test5。./bin/kafka-console-producer.sh --broker-list localhost:9092。-9。get /kafka/brokers/topics/__consumer_offsets/partitions/41/state。cd。cd。--topic。消费者才能保证paritition中的数据有序。

      kafkapartitionleader=-1整理修复方案

      • 1. 背景描述。

        暂无。-ef。=xx.xx.xx.xx:2181/kafka。

  • 在这里插入图片描述

    1. 继续测试test5的数据生产和消费,此时test5无法消耗数据。不能通过调整副本来修复。grep。
    # 控制台1,创建数据消费者。=xx.xx.xx.xx:2181/kafkabin/kafka-topics.sh。 --create。__consumer_offsets。grep。test5。 --zookeeper。test5 --bootstrap-server localhost:9092 --from-beginning。

    在这里插入图片描述

    1. 创建单parition󿼌topic$副本c;便于后续测试。