1、拉取鏡像
docker pull wurstmeister/zookeeper
docker pull wurstmeister/kafka
2、創建容器
docker run -di --network=docker-network --ip=172.19.0.60 --name=zk_01 -p 2181:2181 --privileged=true wurstmeister/zookeeper /bin/bash
docker run -di --network=host --name=kafka_01 -v /etc/localtime:/etc/localtime --privileged=true wurstmeister/kafka:latest /bin/bash
3、修改kafka的配置文件server.properties
cd /opt/kafka_2.12-2.5.0/config/
vi server.properties
server.properties配置文件的內容如下所示
broker.id=0 # 表示broker的編號,如果集群中有多個broker,則每個broker的編號需要設置的不同
listeners=PLAINTEXT://192.168.23.131:9092 # brokder對外提供的服務入口地址
log.dirs=/tmp/kafka-logs # 設置存放消息日志文件的地址
zookeeper.connect=172.19.0.60:2181 # Kafka所需Zookeeper集群地址,教學中Zookeeper和Kafka都安裝本機
4、啟動kafka
bin/kafka-server-start.sh config/server.properties
5、創建主題
bin/kafka-topics.sh --zookeeper 172.19.0.60:2181 --create --topic itheima --partitions 2 --replication-factor 1 # 創建主題,表示副本因子,表示每一個分區具有的副本數(包含分區本身),副本因子數不能超過broker的數量
bin/kafka-topics.sh --zookeeper 172.19.0.60:2181 --list # 查看所有的主題
bin/kafka-topics.sh --zookeeper 172.19.0.60:2181 --describe --topic itheima # 查看主題的詳細信息
bin/kafka-topics.sh --delete --zookeeper 172.19.0.60:2181 --topic itheima # 刪除主題
bin/kafka-console-consumer.sh --bootstrap-server 192.168.23.131:9092 --topic itheima # 開啟一個消費者
bin/kafka-console-producer.sh --broker-list 192.168.23.131:9092 --topic itheima # 開啟一個生產者
修改分區數
增加分區數
bin/kafka-topics.sh --alter --zookeeper 172.19.0.60:2181 --topic itheima --partitions 3
修改分區數時,僅能增加分區個數。若是用其減少 partition 個數,則會報如下錯誤信息:
bin/kafka-topics.sh --alter --zookeeper 172.19.0.60:2181 --topic heima --partitions 2