一、下载Kafka
网址:Apache Kafka
二、解压并安装
1、解压缩并安装到指定目录
tar -vzxf kafka_2.12-2.8.0.tgz -C /u01/soft/kafka
2、创建数据目录
创建kafka数据目录和zk日志目录,默认放在/temp目录下
1)创建Kafka数据目录
mkdir /u01/soft/kafka/data/
2)创建zookeeper数据目录
mkdir /u01/soft/kafka/data_zk
3、修改kafka数据目录配置
vim /u01/soft/kafka/kafka_2.12-2.8.0/config/server.properties
log.dirs=/u01/soft/kafka/data

4、修改zk配置
vim /u01/soft/kafka/kafka_2.12-2.8.0/config/zookeeper.properties
dataDir=/u01/soft/kafka/data_zk

zk默认端口为:2181也可修改
三、开启、关闭Kafka
1、开启与关闭zk
1)开启zk
[root@mydb kafka]# cd kafka_2.12-2.8.0/
[root@mydb kafka_2.12-2.8.0]# pwd
/u01/soft/kafka/kafka_2.12-2.8.0
[root@mydb kafka_2.12-2.8.0]# ./bin/zookeeper-server-start.sh -daemon ./config/zookeeper.properties
[root@mydb kafka_2.12-2.8.0]#
netstat -anpt | grep 2181

zookeeper已启动
2)关闭zk
./bin/zookeeper-server-stop.sh ./config/zookeeper.properties
2、开启与关闭Kafka
1)开启Kafka
[root@mydb kafka_2.12-2.8.0]# pwd
/u01/soft/kafka/kafka_2.12-2.8.0
[root@mydb kafka_2.12-2.8.0]# ./bin/kafka-server-start.sh -daemon ./config/server.properties
安装java11后,才能使用jps命令,Kafka已启动

2)关闭Kafka
./bin/kafka-server-stop.sh ./config/server.properties
四、验证Kafka
1、创建测试topic
cd /u01/soft/kafka/kafka_2.12-2.8.0/bin
[root@mydb bin]# ./kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test1
./bin/kafka-topics.sh这个脚本,--create创建操作,--zookeeper localhost:2181指定zookeeper,--replication-factor指定主题副本数,--partitions 1指定主题分区数,--topic指定主题名称2、查看topic
[root@mydb bin]# ./kafka-topics.sh --list --zookeeper localhost:2181

3、生产者发送消息
[root@mydb bin]# pwd
/u01/soft/kafka/kafka_2.12-2.8.0/bin
[root@mydb bin]# ./kafka-console-producer.sh --broker-list localhost:9092 --topic test1
>ni hao hello word my first kafka you name is one One
>mmm XXXX acasc, ascsa
>scasc

./bin/kafka-console-producer.sh生产者相关的操作由此脚本执行,--broker-list参数指定了所使用的broker,--topic指定要往哪个主题发送消息
4、消费者接收消息
[root@mydb bin]# pwd
/u01/soft/kafka/kafka_2.12-2.8.0/bin
[root@mydb bin]# ./kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test1 --from-beginning
ni hao hello word my first kafka you name is one One
mmm XXXX acasc, ascsa
scasc

./bin/kafka-console-consumer.sh消费者相关的操作由此脚本执行,新版本的kafka使用--bootstrap-server参数,0.8版本以前消费进度是直接写到 zookeeper 的,consumer 必须知道 zookeeper 的地址。这个方案有性能问题,0.9 的时候整体大改了一次,brokers 接管了消费进度,consumer 不再需要和 zookeeper 通信了。--topic指定消费的主题,--from-beginning表示从分区开头进行消费,即重新消费全部消息可以看到消费者已经成功到消息了5、查看单个topic情况
[root@mydb bin]# ./kafka-topics.sh --zookeeper localhost:2181 --describe --topic test1
Topic: test1 TopicId: JkZCHO5oSbOF_8NsihfPNQ PartitionCount: 1 ReplicationFactor: 1 Configs:
Topic: test1 Partition: 0 Leader: 0 Replicas: 0 Isr: 0
[root@mydb bin]#
6、删除topic
[root@mydb bin]# ./kafka-topics.sh --zookeeper localhost:2181 --delete --topic test1
Topic test1 is marked for deletion.
Note: This will have no impact if delete.topic.enable is not set to true.
将Kafka配置参文件中的参数做如下设置,则可以立马删除这个topic:
$KAFKA/config/server.properties中
delete.topic.enble=true

posted on
浙公网安备 33010602011771号