一、下载
官网地址: https://kafka.apache.org/downloads
kafka 在 2.8 版本开始脱离 zookeeper,本文示例版本为 2.7.2。
选择图中标记的版本下载。
- kafka-2.7.2.src.tgz 是源码格式,需要编译。
- kafka_2.12-2.7.2.tgz、kafka_2.13-2.7.2.tgz 是二进制格式,其中 2.12 和 2.13 代表 scala 的版本。
二、解压
将下载的文件放到linux的 /usr/local 目录下,然后解压:
cd /usr/local
tar -zxvf kafka_2.13-2.7.2.tgz
三、配置
进入 kafka 的 config 目录下
cd /usr/local/kafka_2.12-2.7.2/config
ll
- consumer.properties 是消费者的相关配置
- producer.properties 是生产者的相关配置
- server.properties 是 kafka 服务的配置
- zookeeper.properties 是 zookeeper 的相关配置 - zookeeper 中记录kafka的broker等信息
修改 server.properties 的配置。
vim /usr/local/kafka_2.12-2.7.2/config/server.properties
修改 zookeeper.properties 的配置
vim /usr/local/kafka_2.12-2.7.2/config/zookeeper.properties
修改完成保存退出
四、启动
进入 kafka 的安装目录
cd /usr/local/kafka_2.12-2.7.2/
启动 zookeeper
./bin/zookeeper-server-start.sh -daemon config/zookeeper.properties
启动 kafka
./bin/kafka-server-start.sh -daemon config/server.properties
查看是否启动成功
jps -l
或
ps -ef | grep zookeeper
ps -ef | grep kafka
五、kafka 操作
kafka/bin 目录:
kafka 整体有三大模块,分别为生产者producer、消费者consumer 和主题topic,其中 topic 是保存在kafka集群中的,producer 和 consumer 向集群中的 topic 中添加 events 以及消费 events,而针对这三大模块,在kafka的bin目录下,分别有对应的可执行脚本。
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
cd /usr/local/kafka_2.12-2.72/
./bin/kafka-topics.sh --bootstrap-server loaclhost:9092 --create --topic testTopic --partitions 1 --replication-factory 1
# --bootstrap-server 表示要连接到哪台机器上
# --create 表示要创建一个 topic
# --topic 表示要创建的topic的名称,这里是 testTopic
# --partitions 表示分区数
# --replication-factory 表示副本数,不能大于 kafka 的节点数
5.2 kafka-console-consumer.sh
使用 consumer 控制台订阅 topic
cd /usr/local/kafka_2.12-2.72/
./bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic testTopic
# --from-beginning 消费者订阅topic之前,生产者如果已经发布了一个event,这时消费者是拿不到这个event的,如果想要拿到之前已经发布的event,就加上该参数。
5.3 kafka-console-producer.sh
使用 producer 控制台发布 event
cd /usr/local/kafka_2.12-2.72/
./bin/kafka-console-producer.sh --bootstrap-server localhost:9092 --topic testTopic
# 在箭头后输入要发送的 event,每行代表一个 event
在 producer 中发布的 event,topic 的订阅者会接收到。
版权归原作者 yax1n9 所有, 如有侵权,请联系我们删除。