kafka简介
kafka是用于构建实时数据管道和流应用程序。具有横向扩展,容错,wicked fast(变态快)等优点,并已在成千上万家公司运行。
详细可查看官网:http://kafka.apache.org/
以下进入主题,环境搭建
安装JDK
本人机器安装jdk版本是1.8.0_161,安装及环境配置请自行解决,不在本文讲解。
jdk下载地址:JDK下载
zookeeper配置
zookeeper下载地址:zookeeper下载
本示例使用版本是zookeeper-3.4.13
-
下载
下载后,解压放在目录D:\programdata(本文所用的目录)下,关于zookeeper以及kafka的目录,路径中最好不要出现空格,比如D:\Program Files,尽量别用,运行脚本时会有问题。 -
修改配置文件
进入目录D:\bigdata\zookeeper-3.4.10\conf,将"zoo_sample.cfg"重命名为"zoo.cfg";打开zoo.cfg,找到并编辑:
dataDir=/tmp/zookeeper 改为 dataDir=D:/programdata/zookeeper-3.4.13/data(路径仅为示例,具体可根据需要配置)
其他配置暂时按照默认。 -
配置环境变量
在系统环境变量中添加:ZOOKEEPER_HOME=D:\programdata\zookeeper-3.4.13
在系统变量中的path变量,增加%ZOOKEEPER_HOME%\bin -
打开cmd窗口,输入zkserver,运行Zookeeper,运行结果如下:
至此,zookeeper安装并配置完毕;
kafka配置
kafka下载地址:下载kafuka
-
下载kafka
要下载Binary downloads这个类型,不要下载源文件,这种方便使用。下载后,解压放在D:\programdata目录下。 -
修改配置文件
进入目录:D:\programdata\kafka_2.11-2.1.1\config,编辑文件"server.properties",找到并编辑:
log.dirs=/tmp/kafka-logs 改为 log.dirs=D:/programdata/kafka_2.11-2.1.1/kafka-logs
注:配置文件中:zookeeper.connect=localhost:2181 是zookeeper的服务地址,请与上面已安装zookeeper服务的地址与端口保持一致。kafka会按照默认配置,在9092端口上运行,并连接zookeeper的默认端口2181。
kafka简单演示
提示:
- 请确保启动kafka服务器前,Zookeeper实例已经在运行,因为kafka的运行是需要zookeeper这种分布式应用程序协调服务。
- kafka启动窗口不要关闭。
- 生产者与消费者分别开窗口,切不要关闭
运行kafka
- 进入kafka安装目录D:\programdata\kafka_2.11-2.1.1,按下shift+鼠标右键,选择"在此处打开命令窗口",打开命令行。
- 在命令行中输入:.\bin\windows\kafka-server-start.bat .\config\server.properties 按下回车,启动kafka服务
创建topics
创建一个名为“test”的主题,它只包含一个分区,只有一个副本:
进入目录:D:\programdata\kafka_2.11-2.1.1\bin\windows,打开命令窗口,执行如下命令:
>.\kafka-topics.bat --create --zookeeper localhost:2181 --replication-fac
tor 1 --partitions 1 --topic test
成功后控制台打印如下信息:
如果我们运行list topic命令,我们现在可以看到该主题:
>.\kafka-topics.bat --list --zookeeper localhost:2181
test
创建生产者发送消息
Kafka附带一个命令行客户端,它将从文件或标准输入中获取输入,并将其作为消息发送到Kafka集群。默认情况下,每行将作为单独的消息发送。
运行生产者,然后在控制台中键入一些消息以发送到服务器:如 Hello sunny!
>.\kafka-console-producer.bat --broker-list localhost:9092 --topic test
Hello sunny!
启动消费者接收消息
Kafka还有一个命令行使用者,它会将消息转储到标准输出,此时,你会看到界面上输出Hello sunny!
>.\kafka-console-consumer.bat --bootstrap-server localhost:9092 --topic t
est --from-beginning
Hello sunny!
参考网址
本篇部分内容参考了https://blog.youkuaiyun.com/m0_37738114/article/details/80405068 进行编写,感谢“我有一颗明珠”的热心分享。后面命令执行部分,基本按照kafka官网的命令进行:http://kafka.apache.org/quickstart