Kafka3.0.0版本——手动调整分区副本示例

目录

一、服务器信息

  • 四台服务器

    原始服务器名称 原始服务器ip 节点
    centos7虚拟机1 192.168.136.27 broker0
    centos7虚拟机2 192.168.136.28 broker1
    centos7虚拟机3 192.168.136.29 broker2
    centos7虚拟机4 192.168.136.30 broker3

二、启动zookeeper和kafka集群

2.1、先启动zookeeper集群

  • 启动zookeeper集群

    java 复制代码
    [root@localhost /]# cd /opt/module/zookeeper-3.5.7/bin/
    [root@localhost bin]# pwd
    /opt/module/zookeeper-3.5.7/bin
    [root@localhost bin]# sh zkServer.sh start

2.2、再启动kafka集群

  • 启动kafka集群

    java 复制代码
    [root@localhost bin]# cd /opt/module/kafka-3.0.0/
    [root@localhost kafka-3.0.0]# pwd
    /opt/module/kafka-3.0.0
    [root@localhost kafka-3.0.0]# bin/kafka-server-start.sh -daemon config/server.properties
    [root@localhost kafka-3.0.0]# jps

三、手动调整分区副本

3.1、手动调整分区副本的前提条件

  • 在生产环境中,每台服务器的配置和性能不一致,但是Kafka只会根据自己的代码规则创建对应的分区副本,就会导致个别服务器存储压力较大。所有需要手动调整分区副本的存储。

3.2、手动调整分区副本的示例需求

  • 创建一个新的topic,4个分区,两个副本,名称为onetopic。将该topic的所有副本都存储到broker0和broker1两台服务器上。(下图中L表示leader,F表示follower)

3.3、手动调整分区副本的示例

  • 创建一个新的 topic,名称为 onetopic

    java 复制代码
    [root@localhost kafka-3.0.0]# bin/kafka-topics.sh --bootstrap-server 192.168.136.27:9092 --create --partitions 4 --replication-factor 2 --topic onetopic
  • 查看分区副本存储情况,由下图可知:目前分布在broker0、broker1、broker2和broker3的4台服务器上。

    java 复制代码
    [root@localhost kafka-3.0.0]# bin/kafka-topics.sh --bootstrap-server 192.168.136.27:9092 --describe --topic onetopic
  • 创建副本存储计划(所有副本都指定存储在 broker0、broker1中)

    java 复制代码
    [root@localhost kafka-3.0.0]# vim increase-replication-factor.json
    //输入如下内容
    {
    	"version":1,
    	"partitions":[{"topic":"onetopic","partition":0,"replicas":[0,1]},
    	{"topic":"onetopic","partition":1,"replicas":[0,1]},
    	{"topic":"onetopic","partition":2,"replicas":[1,0]},
    	{"topic":"onetopic","partition":3,"replicas":[1,0]}]
    }


  • 执行副本存储计划

    java 复制代码
    [root@localhost kafka-3.0.0]# bin/kafka-reassign-partitions.sh --bootstrap-server 192.168.136.27:9092 --reassignment-json-file increase-replication-factor.json --execute
  • 验证副本存储计划

    java 复制代码
    [root@localhost kafka-3.0.0]# bin/kafka-reassign-partitions.sh --bootstrap-server 192.168.136.27:9092 --reassignment-json-file increase-replication-factor.json --verify
  • 查看分区副本存储情况。由下图可知:已经分布在broker0、broker1的2台服务器上。

    java 复制代码
    [root@localhost kafka-3.0.0]# bin/kafka-topics.sh  --bootstrap-server 192.168.136.27:9092 --describe --topic onetopic
相关推荐
一个儒雅随和的男子1 小时前
kafka消息中间件的rebalance机制
分布式·kafka
小技工丨2 小时前
Flink SQL 读取 Kafka 数据到 Mysql 实战
sql·flink·kafka
BAStriver13 小时前
关于kafka常见的问题小结
分布式·kafka
HappyChan17 小时前
kakfa生产者消费者实践
云原生·kafka·go
auspicious航1 天前
Linux系统上安装kafka
linux·运维·kafka
fxrz121 天前
探讨消息队列系统:AWS SQS vs. Apache Kafka
kafka·apache·aws
小小工匠2 天前
Kafka - 高吞吐量的七项核心设计解析
kafka·高吞吐量
艾斯比的日常2 天前
Kafka 消息不丢失:全方位保障策略
分布式·kafka·linq
ζั͡山 ั͡有扶苏 ั͡✾2 天前
实战指南:构建高可用生产级Kafka集群的完整教程
分布式·zookeeper·kafka·linq·efak
concisedistinct2 天前
Kafka,Mq,Redis作为消息队列使用时的差异?|消息队列
redis·分布式·kafka·消息队列·mq