centos7安装单机kafka
官网下载地址:https://kafka.apache.org/downloads
kafka 在 2.8 版本开始脱离 zookeeper,本文示例版本为 3.7.1。
参考:https://blog.csdn.net/zaixiaqin/article/details/134968110
1、下载
wget https://downloads.apache.org/kafka/3.7.1/kafka_2.12-3.7.1.tgz
2、解压
tar zxvf kafka_2.12-3.7.1.tgz -C /data/
3、配置
进入安装目录的config目录
cd /data/kafka_2.12-3.7.1/config
consumer.properties 是消费者的相关配置
producer.properties 是生产者的相关配置
server.properties 是 kafka 服务的配置
zookeeper.properties 是 zookeeper 的相关配置
zookeeper 中记录kafka的broker等信息
修改 server.properties 的配置
vim /data/kafka_2.12-3.7.1/config/server.properties # 修改2处,只能填写ip不能0.0.0.0 listeners=PLAINTEXT://192.168.1.94:9092 advertised.listeners=PLAINTEXT://192.168.1.94:9092 # 可改可不改 log.dirs=/tmp/kafka-logs
zookeeper.properties配置不用改
4、启动
启动 zookeeper
cd /data/kafka_2.12-3.7.1/ ./bin/zookeeper-server-start.sh -daemon config/zookeeper.properties
启动 kafka
./bin/kafka-server-start.sh -daemon config/server.properties
5、kafka常用操作
5.1 kafka-topics.sh
参数 说明
–bootstrap-server <String: server to connect to> 连接的kafka的broker的主机名称和端口号
–topic <String: topic> 操作的topic的名称
–create 创建topic
–delete 删除主题
–alter 修改主题
–list 查看所有主题
–describe 查看主题详细描述
–partitions <Integer: # of partitions> 设置分区数
–replication-factor <Integer:replication factor> 分区副本数,一般跟kafka节点数相同
–config <String: name=value> 更新系统默认的配置
使用 topic 控制台创建一个 topic
./bin/kafka-topics.sh --bootstrap-server 192.168.1.94:9092 --create --topic som_log --partitions 1
使用 topic 控制台删除一个 topic
./bin/kafka-topics.sh --bootstrap-server 192.168.1.94:9092 --delete --topic som_log
5.2 kafka-console-consumer.sh
使用 consumer 控制台订阅 topic
cd /data/kafka_2.12-3.7.1/ ./bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic som_log # --from-beginning 消费者订阅topic之前,生产者如果已经发布了一个event,这时消费者是拿不到这个event的,如果想要拿到之前已经发布的event,就加上该参数。
使用 consumer 控制台查看某个topic的消息
./bin/kafka-console-consumer.sh --bootstrap-server 10.1.204.62:9092 --topic som_login_log --from-beginning
5.3 kafka-console-producer.sh
使用 producer 控制台发布 event
cd /data/kafka_2.12-3.7.1/ ./bin/kafka-console-producer.sh --bootstrap-server localhost:9092 --topic som_log # 在箭头后输入要发送的 event,每行代表一个 event
在 producer 中发布的 event,topic 的订阅者会接收到。