【Kafka-分区增加副本】Kafka分区增加副本

本文介绍了如何在Kafka中为已存在的topic增加分区副本,以提高可用性。首先创建了一个副本数为1的测试topic,然后利用kafka-reassign-partitions.sh脚本制定并执行分区副本增加策略,最后验证副本增加操作的成功。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

【Kafka-分区增加副本】Kafka分区增加副本

1)前言

Kafka 中 topic 的每个分区可以设置多个副本。如果副本数为1,当该分区副本的 leader 节点宕机后,会导致该分区不可用。故需要设置多副本来保证可用性。

实际项目中,存在项目初期创建了副本数为1的 topic,但是后期又需要扩大副本数的场景。通常不能直接删除 topic 重建,可以通过如下操作实现。

2)创建测试topic

(1)创建副本为1的 topic:

kafka-topics --bootstrap-server kafka01:9092 --create --replication-factor 1 --partitions 3 --topic test_topic

(2)查看topic信息:

kafka-topics --describe --bootstrap-server kafka01:9092 --topic test_topic

输出(可以看出3个分区,各自都是只有一个副本。当 leader 对应节点挂掉后,分区就不可用了):

Topic:test_topic        PartitionCount:3        ReplicationFactor:1     Configs:
Topic: test_topic       Partition: 0    Leader: 364     Replicas: 364   Isr: 364
Topic: test_topic       Partition: 1    Leader: 365     Replicas: 365   Isr: 365
Topic: test_topic       Partition: 2    Leader: 366     Replicas: 366   Isr: 366

3)增加副本

使用官方自带的kafka-reassign-partitions.sh脚本实现。该脚本用来移动分区的副本位置。除了可以实现增加副本,还可以实现将分区的副本移动到指定机器上。该脚本的 help 见附录。

以下步骤实现将 test_topic 的各个分区增加为三副本

(1)制定分区及副本分配策略:

创建 json 文件,写入如下内容:

填写说明

  • topic 为 topic 名称
  • partition 为分区号
  • replicas 为 broker id 的数组
{
   
   
    "version": 1,
    "partitions": [
        {
   
   
            "topic": "test_topic",
            "partition": 0,
            "replicas": [
                364,
                365,
                366
            ]
        },
        {
   
   
            "topic": "test_topic",
            "partition": 1,
            "replicas": [
              
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值