(一)启动kafka环境
kafka要求jdk1.8以上,并且启动kafka之前需要启动zookeeper,这里直接使用kafka自带的zookeeper,但是官方说不久后kafka将不再需要zookeeper。
启动zookeeper:bin/zookeeper-server-start.sh config/zookeeper.properties
启动kafka:bin/kafka-server-start.sh config/server.properties
(二)创建topic
kafka是一个分布式事件流平台,允许在多台计算机上读,写,存储和处理事件,事件被存储在topic中。topic类似于文件系统中的文件夹,事件类似于文件夹中的文件。所以在创建事件之前需要创建topic
创建topic:bin/kafka-topics.sh --create --topic myTopic --bootstrap-server localhost:9092 kafka-topics.sh命令用于操作topic,它包括很多参数,--create表示创建 --topic myTopic 表示topic名字为myTopic,bootstrap-server localhost:9092表示服务器地址为localhost:9092。
成功创建topic之后,服务器会打印新建topic的名称,配置信息,这里为{}以及分片信息等
使用--describe参数可以查看topic信息
(三)写入event
kafka客户端通过网络与kafka代理进行通信,以写入或读取event,一旦收到event,kafka将以持久和容错的方式存储事件,用户可自行决定存储时间。
运行kafak producer客户端并输入evnet bin/kafka-console-producer.sh --topic myTopic --bootstrap-server localhost:9092
目前producer 客户端是处于可持续输入event的状态,若要退出可按Ctrl+C
(四)读取event
运行kafka consumer客户端并输入bin/kafka-console-consumer.sh --topic myTopic --from-beginning --bootstrap-server localhost:9092,其中--from-beginning参数表示从开始读取event
若没有--from-beginning参数,则默认从此时开始新入的event开始读取(注意在自己测试的时候,启动consumer客户端之后要等一会再去producer客户端写数据,可能这边没起起来,那边写了数据但是这边看不到)
(五)其他(后面新开详细介绍)
可使用kafka Connect导入导出自己的数据
可使用kafka Streams处理event
(六)终止kafka环境
都可以用Ctrl+C去终止,若想要删除本地环境中的所有数据,可以使用
rm -rf /tmp/kafka-logs /tmp/zookeeper