Kafka小白:从下载到运行简单示例
目录
概述
一、安装
1.1 下载Kafka
1.2 解压
二、运行一个简单示例
2.1 启动服务
2.2 运行简单示例
2.3 关闭
2.4 重新开始
概述
本文针对小白快速入门,不涉及过多Kafka概念,只讲解如何实操(不详细解释代码)。只要按照步骤进行,就能运行Kafka。
提供的简单示例使用Kafka默认配置文件,不需要修改配置文件,过程十分简单。读者可以自行学习使用自己的配置,如配置集群等。
演示操作系统:ubuntu(centos操作类似)
前置环境:JDK17+
一、安装
1.1 下载Kafka
官网链接:Apache Kafka
我们选择下载二进制压缩文件
下载较慢可以使用清华镜像源下载:https://mirrors.tuna.tsinghua.edu.cn/apache/kafka/3.7.0/kafka_2.13-3.7.0.tgz
1.2 解压
我们进入下载目录(找到下载的压缩包)
如果是在虚拟机中直接下载,而不是主机下载拷贝的,默认在主目录的下载文件夹里
进入目录后右击,在终端中打开
然后输入代码解压
tar -zxf kafka_2.13-3.7.0.tgz -C /usr/local
若运行出错,centos请使用管理员身份,ubuntu使用sudo语句
sudo tar -zxf kafka_2.13-3.7.0.tgz -C /usr/local
解压成功后会解压到/usr/local中
二、运行一个简单示例
Kafka可以依赖ZooKeeper运行,且安装包内内置ZooKeeper,直接运行即可
2.1 启动服务
打开安装后的目录usr/local/kafka_xxx,右击打开终端
启动ZooKepper:
sudo bin/zookeeper-server-start.sh config/zookeeper.properties
sudo是ubundu中使用管理员身份的方法,下文不再阐述
centos系统删去sudo,运行后面的代码即可
运行起来后显示的是ZooKeeper运行日志,可以不用关注,终端开在后台即可
同样的方法打开一个新终端,启动kafka:
sudo bin/kafka-server-start.sh config/server.properties
稍等片刻后出现上图代码后启动成功。
运行起来后显示的是kafka运行日志,可以不用关注,终端开在后台即可
2.2 运行简单示例
同样的方法打开一个新终端,在该终端中创建名为test的主题:
bin/kafka-topics.sh --create --topic test --bootstrap-server localhost:9092 --partitions 1 --replication-factor 1
运行结束后,在该终端中创建生产者(发送消息方):
bin/kafka-console-producer.sh --topic test --bootstrap-server localhost:9092
同样的方法打开一个新终端,在该终端中创建消费者(接收消息方):
bin/kafka-console-consumer.sh --topic test --bootstrap-server localhost:9092 --from-beginning
至此一个简单示例就创建完成了,此时在生产者终端中输入任意信息,消费者终端都能收到消息。读者可以自行输入任意信息。
消费者会显示历史的所有消息
2.3 关闭
关闭生产者和消费者:关闭对应终端即可
关闭服务:在ZooKeeper和kafka服务终端中按Ctrl+c关闭或在别的终端中运行如下代码
2.4 重新开始
当关闭服务后,创建的主题会保留在Kafka集群中,重新开启服务时不会消失。
要删除主题使用如下代码:
bin/kafka-topics.sh --delete --topic test --bootstrap-server localhost:9092
所以,想要继续先前的主题,只要开四个终端,分别打开两个服务,创建一个生产者,一个消费者即可,所有代码如下:
sudo bin/zookeeper-server-start.sh config/zookeeper.properties sudo bin/kafka-server-start.sh config/server.properties bin/kafka-console-producer.sh --topic test --bootstrap-server localhost:9092 bin/kafka-console-consumer.sh --topic test --bootstrap-server localhost:9092 --from-beginning