扩容方案 增加2个broker,复制系数直接指定为3,指定原来的单机zook docker run -d --name kafka02 -p 9092:9092 -p 9999:9999 -e KAFKA_BROKER_ID=2 -e KAFKA_ZOOKEEPER_CONNECT=192.168.18.225:2181 -e KAFKA_ADVERTISED_HOST_NAME=192.168.18.249 -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.168.18.249:9092 -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 -e JMX_PORT=9999 -e KAFKA_DEFAULT_REPLICATION_FACTOR=3 -e KAFKA_JMX_OPTS="-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=192.168.18.249 -Dcom.sun.management.jmxremote.rmi.port=9999" wurstmeister/kafka:0.11.0.0 docker run -d --name kafka03 -p 9092:9092 -p 9999:9999 -e KAFKA_BROKER_ID=3 -e KAFKA_ZOOKEEPER_CONNECT=192.168.18.225:2181 -e KAFKA_ADVERTISED_HOST_NAME=192.168.21.166 -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.168.21.166:9092 -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 -e JMX_PORT=9999 -e KAFKA_DEFAULT_REPLICATION_FACTOR=3 -e KAFKA_JMX_OPTS="-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=192.168.21.166 -Dcom.sun.management.jmxremote.rmi.port=9999" wurstmeister/kafka:0.11.0.0 指定zook,验证topic信息 ./kafka-topics.sh --zookeeper 192.168.18.225:2181 --describe --topic vehicle_push_sudi_info 每个topic制作配置文件,分区信息和原来保持一致 cat add_rep.json {"version":1, "partitions":[{"topic":"vehicle_push_sudi_info","partition":0,"replicas":[1001,2,3]}] } 修改topic参数 ./kafka-reassign-partitions.sh --zookeeper 192.168.18.225:2181 --reassignment-json-file add_rep.json --execute 在kafka manager验证副本情况 修改生产者和消费者连接信息 192.168.18.249:9092 192.168.21.166:9092 原broker宕机测试 环境:生产者持续写入,消费者持续读取,原broker宕机,查看生产消费是否正常,分区leadeer是否转移 原broker在server配置文件里修改复制系数并重启,保证以后新的topic复制系数都是3