kafka
整理kafka相关知识点……
安装 kafka
下载地址:Downloads - Apache Kafka、Index of /kafka
这里下载的是:kafka_2.13-3.2.0.tgz
安装之前需要先准备好JAVA环境,可以参考:java - xiaodu114.github.io
Windows
解压
绿色版,免安装的。压缩包放置目录是D:\ProgramOther,解压目录是D:\ProgramOther\kafka_2.13-3.2.0
配置
在上面的解压目录中新建data文件,之后在里面再新建两个文件夹分别存在kafka和zookeeper
数据,如下:
- D:/ProgramOther/kafka_2.13-3.2.0/data/kafka-logs
- D:/ProgramOther/kafka_2.13-3.2.0/data/zookeeper
之后修改kafka和zookeeper的配置文件,如下图:
启动
在D:\ProgramOther\kafka_2.13-3.2.0\bin\windows打开两个终端,分别启动zookeeper
和
kafka,这里使用的是powershell
。命令如下:
# 首先是 zookeeper
./zookeeper-server-start.bat D:/ProgramOther/kafka_2.13-3.2.0/config/zookeeper.properties
# 其次是 kafka
./kafka-server-start.bat D:/ProgramOther/kafka_2.13-3.2.0/config/server.properties
创建一个 topics
第一个topics便给出了警告,名称是level1_level2_level3_001
# 第一个 topics
./kafka-topics.bat --create --topic level1_level2_level3_001 --bootstrap-server localhost:9092
# 第二个 topics
./kafka-topics.bat --create --topic level1-level2-level3-001 --bootstrap-server localhost:9092
新建完了之后,查看一下topics
# 列出全部
./kafka-topics.bat --bootstrap-server localhost:9092 --list
# 查看某一个
./kafka-topics.bat --bootstrap-server localhost:9092 --describe --topic level1-level2-level3-001
WARNING: Due to limitations in metric names, topics with a period ('.') or underscore ('_') could
collide. To avoid issues it is best to use either, but not both.
生产/消费 消息
都准备好了,开始干活了。
# 生产消息
./kafka-console-producer.bat --bootstrap-server localhost:9092 --topic level1-level2-level3-001
# 消费消息
./kafka-console-consumer.bat --bootstrap-server localhost:9092 --topic level1-level2-level3-001 --from-beginning
如果你是先启动的kafka-console-producer.bat,随后就生产消息;之后才启动的
kafka-console-consumer.bat,这时需要添加from-beginning参数,如果先启动它应该就没问题了
安装 kafka eagle
下载地址:EFAK、Download - EFAK
这里下载的是:kafka-eagle-bin-2.1.0.tar.gz
Windows
解压
绿色版,免安装的。压缩包放置目录是D:\ProgramOther,解压目录是D:\ProgramOther\kafka-eagle-bin-2.1.0
。解压之后:一个文件夹kafka-eagle-bin-2.1.0和一个文件pax_global_header
。我开始以为文件夹中就是所需的文件了,没想到又是一个压缩包,不会一直递归下去吧!怀着忐忑的心情把他解压了,终于看到了bin
等目录,于是把他们一起剪切到最外边并且把pax_global_header删掉了,如下图:
配置
看了一下官方的安装教程:Install on Windows - Docs我去,so easy 啊!就四步,前两步安装JDK和检查JDK都已经弄过了,就生下了环境变量
KE_HOME的配置和启动了。有点怀疑,这玩意儿得和zookeeper、kafka
链接啊……还是查了一下,果然需要配置,配置文件路径:
D:/ProgramOther/kafka-eagle-bin-2.1.0/conf/system-config.properties 下面列出该文件的改动:
之后就是设置环境变量KE_HOME了,路径为:D:\ProgramOther\kafka-eagle-bin-2.1.0
这个比较简单,就不截图了。
启动
如官网说的,在D:\ProgramOther\kafka-eagle-bin-2.1.0\bin下执行./ke.bat
就可以了,小小的期待,看下效果图:
我去,┭┮﹏┭┮,一堆乱码,页面404…… 开始反思与尝试之路,是不是哪里落下了,还是哪里弄错了……
看着人家的炫酷大屏,都是泪啊!洗洗睡吧!
第二天,到了公司之后,忍不住啊,又试了一下。公司的电脑已经安装了java环境,于是只弄了kafka eagle
,没想到啊,居然成功了……怎么回事儿,到底哪里出了问题,我开始想了,两边都哪里不一样,也确实有些不一样的地方:
-
一个是jdk17,一个是jdk8(公司)
-
jdk8的环境变量Path中包含jre的路径
-
……
分析了之后,于是便安装jdk17(和家中的相同),但是安装之后没有出现jre目录,于是便查了一下,还真找到了。需要在
路径下进入终端,之后执行bin\jlink.exe --module-path jmods --add-modules java.desktop --output jre
。最后jre出现了,配置好了之后,还是不行。我郁闷了,真的郁闷了,难道只支持jdk8?最后在郁闷中下班了,回家试试
jdk8吧!
到家之后,来不及干别的,赶紧试试jdk8,结果结果结果还是不行,郁闷升级了,啊啊啊啊啊啊!冷静了一下,想着看看ke.bat
这个文件,庆幸这个文件不大,一共60多行。一行一行的测试,直到测试到这一行%JAVA_HOME%\bin\jar -xvf %KE_HOME%\kms\webapps\ke.war
,出现了下面的错误(应该是现在才意识到,这个错误是致命的):
原来是这样,原来是这样,原来是这样啊,批处理文件不支持空格路径。现在想想公司的为什么可以,才恍然大悟,公司java的安装路径是D:\Java\jdk1.8.0_291\bin
,没有空格,路径合法,想想当时成功的场景,终端输出了好多文件路径,再结合现在的页面预览404和上面的-xvf
,这是解压文件的。我们可以重新安装一下jdk,但是这里安装的microsoft发行的jdk,不给我们选择的机会。于是便查了一下批处理空格路径的问题,例如:Windows批处理中对带空格路径的处理
找出了原因就好说了,于是便改了一下ke.bat文件,一共修改两处,例如:"%JAVA_HOME%"\bin\jar -xvf
%KE_HOME%\kms\webapps\ke.war。修改之后,赶紧试试,结果并没有看到想要的解压压缩包,如下图:
好难啊!我开始再次查看%JAVA_HOME%,上面已经截图了,发现路径是\结尾的,拼接上\bin\jar
之后的结果是C:\Program Files\Microsoft\jdk-17.0.3.7-hotspot\\bin\jar,不会是因为多了一个
\吧!是的是的是的,这里把环境变量中的\去掉了,之后终于可以了,太难了
最后在说一下Tomcat中文乱码的问题,%KE_HOME%或者%KE_HOME%\kms路径下的
logs中找找,具体哪一个忘记了,有时间更正一下。