JDK已经安装好
![130ec3d7648ed0c1e3cfbe376b6424be.png](https://img-blog.csdnimg.cn/img_convert/130ec3d7648ed0c1e3cfbe376b6424be.png)
准备安装包
![d335d56d090c89849650c8efe239b95e.png](https://img-blog.csdnimg.cn/img_convert/d335d56d090c89849650c8efe239b95e.png)
将安装包解压
![6d6eb958cbc2fa9122bc44b3ce72b884.png](https://img-blog.csdnimg.cn/img_convert/6d6eb958cbc2fa9122bc44b3ce72b884.png)
查看安装包
![1bbf3ac4d4ea6504485b9129477c7d81.png](https://img-blog.csdnimg.cn/img_convert/1bbf3ac4d4ea6504485b9129477c7d81.png)
创建一个数据目录
![141c7749316460a729ba8955549ef33e.png](https://img-blog.csdnimg.cn/img_convert/141c7749316460a729ba8955549ef33e.png)
配置环境变量
编辑文件
![f4fe5ded65ea851365aec87f665dc637.png](https://img-blog.csdnimg.cn/img_convert/f4fe5ded65ea851365aec87f665dc637.png)
添加内容
![b4ff8fd9beb43c4f557833d092b60d29.png](https://img-blog.csdnimg.cn/img_convert/b4ff8fd9beb43c4f557833d092b60d29.png)
配置生效
![18edc75522d14b71534dbcd95113bf24.png](https://img-blog.csdnimg.cn/img_convert/18edc75522d14b71534dbcd95113bf24.png)
启动之前要先启动zookeeper服务器,zookeeper是为kafka提高协调服务的工具。kafka已经内置了一个zookeeper服务器以及一些启动脚本
编辑配置文件zookeeper.properties
![0e87c254f74dffd705e8950efd2c0c65.png](https://img-blog.csdnimg.cn/img_convert/0e87c254f74dffd705e8950efd2c0c65.png)
配置内容
dataDir=/usr/local/kafka_2.12-1.0.0/data/
clientPort=2181
![cb0d3f8d9b71fcb2424e6df5f357b0a2.png](https://img-blog.csdnimg.cn/img_convert/cb0d3f8d9b71fcb2424e6df5f357b0a2.png)
启动zookeeper
./zookeeper-server-start.sh ../config/zookeeper.properties
![2f1b22126b3f6a5cc550a371d4f3fd04.png](https://img-blog.csdnimg.cn/img_convert/2f1b22126b3f6a5cc550a371d4f3fd04.png)
启动好zookeeper以后,然后启动kafka服务器
注意:为了启动kafka服务器,要保证刚才启动的zookeeper终端不被关闭。打开一个新的终端
./kafka-server-start.sh ../config/server.properties
![e3bddde5b70f782917914a432751d0c9.png](https://img-blog.csdnimg.cn/img_convert/e3bddde5b70f782917914a432751d0c9.png)
[KafkaServer id=0] started (kafka.server.KafkaServer)说明kafka服务器启动成功,默认的服务端口是9092
![7a7d01f449631efe399c8d44d7c86696.png](https://img-blog.csdnimg.cn/img_convert/7a7d01f449631efe399c8d44d7c86696.png)
查看端口
![466c310f211b52eb0504afb7c9b568f3.png](https://img-blog.csdnimg.cn/img_convert/466c310f211b52eb0504afb7c9b568f3.png)
服务器启动后,我们需要创建一个主题(topic)用于消息的发送和接受。
创建一个名称为test的topic
注意:为了要创建topic,要保证刚才启动的zookeeper和kafka的终端不被关闭。打开一个新的终端
测试:该topic只有一个分区(partition),且该partition也只有一个副本(replica)处理消息
命令:./kafka-topics.sh --create --zookeeper localhost:2181 --topic test --partitions 1 --replication-factor 1
![4be5e660af1d8639b0924bb01b7a285b.png](https://img-blog.csdnimg.cn/img_convert/4be5e660af1d8639b0924bb01b7a285b.png)
查看该topic的状态
./kafka-topics.sh --describe --zookeeper localhost:2181 --topic test
![7fcef346410e02602a66aa1650a4a5be.png](https://img-blog.csdnimg.cn/img_convert/7fcef346410e02602a66aa1650a4a5be.png)
发送消息,即生产消息。kafka默认提供了脚本工具可以不断的接受标准输入并将他们发送到kafka的某个topic上面,用户在控制台终端下启动该命令,输入一行文本数据,然后该脚本将该行文本封装成一条kafka消息发送给指定的topic。打开新的终端,执行命令
./kafka-console-producer.sh --broker-list localhost:9092 --topic test
![6c71fcff8ea219092f21ee31869fd470.png](https://img-blog.csdnimg.cn/img_convert/6c71fcff8ea219092f21ee31869fd470.png)
消费消息,消费者,kafka提供了一对应的脚本用于消费某些topic下的消息并打印到标准输出。打开新的终端。执行如下命令
./kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning
![bcb30ab667b7b4d02809827fc0e7e7cc.png](https://img-blog.csdnimg.cn/img_convert/bcb30ab667b7b4d02809827fc0e7e7cc.png)
两边可以输入查看
![cb5c99f7cd5f09cb14f06867c1024f58.png](https://img-blog.csdnimg.cn/img_convert/cb5c99f7cd5f09cb14f06867c1024f58.png)
![b29f00824fdc65b4318a69f455bdeb65.png](https://img-blog.csdnimg.cn/img_convert/b29f00824fdc65b4318a69f455bdeb65.png)