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
相关推荐
IT成长日记2 小时前
【Kafka基础】监控与维护:动态配置管理,灵活调整集群行为
分布式·kafka·动态配置管理
shepherd1263 小时前
从零搭建高可用Kafka集群与EFAK监控平台:全流程实战总结
分布式·后端·kafka
一个天蝎座 白勺 程序猿6 小时前
大数据(7.5)Kafka Edge在5G边缘计算中的革新实践:解锁毫秒级实时处理的无限可能
大数据·kafka·edge
爱编程的王小美6 小时前
Kafka基础知识
分布式·kafka
CopyLower7 小时前
深入剖析 Kafka 的零拷贝原理:从操作系统到 Java 实践
java·kafka·linq
stormsha7 小时前
使用多进程和 Socket 接收解析数据并推送到 Kafka 的高性能架构
分布式·架构·kafka
缺一句感谢和缺一句道歉7 小时前
阿里云kafka集成boot在docker启动找不到kafka.client.truststore.jks文件问题
java·spring boot·kafka
明天过后ww1 天前
RocketMQ和kafka 的区别
分布式·kafka·rocketmq
一个天蝎座 白勺 程序猿1 天前
大数据(7.3)Kafka量子安全加密实践指南:构建抗量子计算攻击的消息系统
大数据·安全·kafka·量子计算
信徒_1 天前
Kafka 的选举机制
分布式·kafka