准备
zookeeper节点:
- 172.50.13.103
- 172.50.13.104
- 172.50.13.105
kafka版本:
- 2.13-2.7.0
安装步骤
- 部署安装zookeeper集群。参考:部署安装zookeeper集群
- 下载并解压缩kafka安装包。规范位置为
/home/web/kafka
。
wget http://mirrors.ustc.edu.cn/apache/kafka/2.7.0/kafka_2.13-2.7.0.tgz -P /home/web
tar xf kafka_2.13-2.7.0.tgz
- 使用
mv
修改目录名为/home/web/kafka
- 编辑配置文件(以13.103上的配置文件为例,13.104和13.105上只需要修改
broker.id
和listeners
)
# 每一个Broker在集群中的唯一标识,必须为正数 broker.id=0 # kafka监听地址与端口 listeners=PLAINTEXT://172.50.13.103:9092 num.network.threads=3 num.io.threads=8 socket.send.buffer.bytes=102400 socket.receive.buffer.bytes=102400 socket.request.max.bytes=104857600 # kafka保存数据的位置 log.dirs=/home/log/kafka # 设置新创建的分区有多少个分区,可以根据消费者实际情况配置,配置过小会影响消费性能 num.partitions=6 num.recovery.threads.per.data.dir=1 offsets.topic.replication.factor=1 transaction.state.log.replication.factor=1 transaction.state.log.min.isr=1 # 数据保存72小时 log.retention.hours=72 # 分区中每个段数据文件的大小为1GB log.segment.bytes=1073741824 log.retention.check.interval.ms=300000 # zookeeper所在地址 zookeeper.connect=172.50.13.104:2181,172.50.13.105:2181,172.50.13.105:2181, zookeeper.connection.timeout.ms=18000 group.initial.rebalance.delay.ms=0 # 自动创建主题 auto.create.topics.enable=true # 提供删除主题的功能 delete.topic.enable=true
- 启动:
/home/web/kafka/bin/kafka-server-start.sh -daemon /home/web/kafka/config/server.properties
基本操作指令
- 显示主题列表:
/home/web/kafka/bin/kafka-topics.sh --zookeeper 172.50.13.103:2181,172.50.13.104:2181,172.50.13.105:2181 --list
- 创建主题:
/home/web/kafka/bin/kafka-topics.sh --create --zookeeper 172.50.13.103:2181,172.50.13.104:2181,172.50.13.105:2181 --replication-factor 1 --partitions 3 --topic testtopic
- 查看某个主题的状态
/home/web/kafka/bin/kafka-topics.sh --describe --zookeeper 172.50.13.103:2181,172.50.13.104:2181,172.50.13.105:2181 --topic testtopic
- 13.103启动生产者生产消息
/home/web/kafka/bin/kafka-console-producer.sh --broker-list 172.50.13.103:9092,172.50.13.104:9092,172.50.13.105:9092 --topic testtopic
- 13.104和13.104启动消费者
/home/web/kafka/bin/kafka-console-consumer.sh --bootstrap-server 172.50.13.103:9092,172.50.13.104:9092,172.50.13.105:9092 --topic testtopic
在生产者的控制台随便输入内容并回车,如果消费者控制台也能看到,说明kafka集群搭建完成。
- 删除主题
/home/web/kafka/bin/kafka-topics.sh --zookeeper 172.50.13.103:2181,172.50.13.104:2181,172.50.13.105:2181 --delete --topic testtopic