官方下载网址: https://kafka.apache.org/downloads
tar -xzf kafka_2.13-3.0.0.tgz #解压
mv kafka_2.13-3.0.0 kafka #修改文件名
cd kafka/config
vim server.properties #修改kafka配置文件
vim zookeeper.properties #修改zookeeper配置文件
server.properties 配置:
需要自己手动创建文件夹。
broker.id=0
port=9092 #默认端口9092
host.name=localhost #单机可直接用localhost
log.dirs=/home/user/kafka/log #日志存放路径
zookeeper.connect=localhost:2181 #zookeeper地址和端口
zookeeper.properties 配置:
dataDir=/home/user/kafka/zookeeper/data #zookeeper数据目录
dataLogDir=/home/user/kafka/zookeeper/log #zookeeper日志目录
clientPort=2181 #默认端口
maxClientCnxns=100
tickTime=2000
initLimit=10
#先启动zookeeper
bin/zookeeper-server-start.sh config/zookeeper.properties
#打开另一个终端,启动kafka
bin/kafka-server-start.sh config/server.properties
创建一个主题来存储事件
bin/kafka-topics.sh \
--create \
--topic quickstart-events \
--bootstrap-server localhost:9092 \
--partitions 1 \
--replication-factor 1
#出现如下则创建成功
Created topic quickstart-events.
#查看主题
bin/kafka-topics.sh --describe \
--topic quickstart-events \
--bootstrap-server localhost:9092
查看所有topic
bin/kafka-topics.sh --bootstrap-server localhost:9092 --list
删除topic
bin/kafka-topics.sh -delete --bootstrap-server localhost:9092 --topic name
name
为topic的主题名。
生产者
#启动生产者
bin/kafka-console-producer.sh \
--topic quickstart-events \
--bootstrap-server localhost:9092
this is first message #发送的消息
the second message
消费者
#打开另一个终端
#启动消费者
bin/kafka-console-consumer.sh \
--topic quickstart-events \
--from-beginning \
--bootstrap-server localhost:9092
Ctrl-C 可以关闭所有客户端。
bin/zookeeper-server-stop.sh config/zookeeper.properties
bin/kafka-server-stop.sh config/server.properties
kafka集群搭建之前,需要先搭建zookeeper集群。
zookeeper集群搭建
为了方便管理,在kafka下新建 cluster 文件夹
cd kafka
mkdir cluster
cd cluster
#新建集群配置文件
mkdir cluster-config
#复制配置文件
cp ../config/server.properties cluster-config/server-1.properties
vim cluster-config/server-1.properties
配置文件修改以下内容:
#listeners=PLAINTEXT://:9092
listeners=PLAINTEXT://:9093
#port=9093
broker.id=1 #节点id
#存放节点数据目录 需要自己创建
log.dirs=/home/user1/work/kafka/cluster/logs-1
num.partitions=3 #分区数量
default.replication.factor=2 #备份数据的个数
#zoookeeper
zookeeper.connect=localhost:2187,localhost:2188:localhost:2189
接下来复制配置文件,修改参数即可。
cd cluster-config
cp server-1.properties server-2.properties
cp server-1.properties server-3.properties
分别修改
listeners=PLAINTEXT://:9094
broker.id =2
log.dirs=/home/user1/work/kafka/cluster/logs-2
启动与关闭:
bin/kafka-server-start.sh cluster/cluster-config/server-1.properties
#关闭
bin/kafka-server-stop.sh cluster/cluster-config/server-1.properties
如需后台启动,添加参数 -daemon 即可。
zookeeper验证是否启动成功:
./zkCli.sh -server 127.0.0.1:2187,127.0.0.1:2188,127.0.0.1:2189
#查看当前zookeeper中所包含的内容
ls /
[admin, brokers, cluster, config, consumers, controller, controller_epoch, feature,
isr_change_notification, latest_producer_id_block, log_dir_event_notification, zookeeper]
ls /brokers
[ids, seqid, topics]
ls /brokers/ids #查看节点
[1, 2, 3]
ls /brokers/topics #查看topic
[__consumer_offsets, test]
#启动生产者 创建topic test
bin/kafka-console-producer.sh --broker-list 127.0.0.1:9093,127.0.0.1:9094,127.0.0.1:9095 --topic test
>hello #发送消息
#启动消费者 订阅topic
./bin/kafka-console-consumer.sh --bootstrap-list 127.0.0.1:9095,127.0.0.1:9093,127.0.0.1:9094 --topic test --from-beginning
hello #接收到的消息