docker部署kafka
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