【Kafka】Windows下安装Kafka(全面)

目录

1.前提条件

2.下载

3.安装

4.环境变量配置

5.验证

1.前提条件

1.先安装zookeeper:

【Zookeeper】Windows下安装Zookeeper(全面)-CSDN博客https://blog.csdn.net/weixin_57259781/article/details/141679454

2.还需要安装scala:

【Scala】Windows下安装Scala(全面)-CSDN博客https://blog.csdn.net/weixin_57259781/article/details/141673648

2.下载

下载链接:

Index of /kafka (apache.org)https://downloads.apache.org/kafka/选择合适的版本下载.tgz文件:

3.安装

下载的压缩包解压两次得到文件夹:该文件夹的路径也就是kafka的安装路径

在目录下添加一个新的空的文件夹,名字为logs

修改config目录下的配置文件server.properties

修改 log.dirs 参数值,修改成上一步新建的logs文件夹。注意文件夹路径中是双左斜杠

继续在改配置文件中修改listeners 参数的值为:

复制代码
listeners=PLAINTEXT://localhost:9092

4.启动

因为Kafka依赖于Zookeeper,所以要先启动Zookeeper,再启动Kafka。

4.1启动Zookeeper服务

到zookeeper安装路径下bin目录下双击zkServer.cmd文件:

显示如下信息,则表示Zookeeper服务正常运行:

4.2启动kafka服务

到kafka的安装目录下进入cmd窗口:

输入命令启动kafka:

复制代码
.\bin\windows\kafka-server-start.bat .\config\server.properties

我的输入命令后报错如下:

报错原因:因为目录层级太深或者是目录名字太长导致的。我们需要把文件夹移动到一个层级浅一点的位置:

我从位置:D:\Users\125715\tools\kafka\kafka\kafka_2.12-3.5.1移动到:D:\Users\125715\tools\kafka\3.5.1,并且修改config目录下的配置文件server.properties中的 log.dirs 参数值

继续重新启动kafka:在命令行输入命令上述命令,出现如下则表示成功:

5.验证

总体思路:创建主题topics,生产者向topics中推送消息,消费者从topics中读取消息。

首先进入自己的kafka安装路径的bin目录下的window目录下,我的安装目录为: D:\Users\125715\tools\kafka\3.5.1\bin\windows

然后我们来了解一下需要用到的几个脚本执行文件:

5.1创建查看topics

命令如下:

复制代码
#创建topics,--topic后为topic名称,--replication-factor为副本数量,partitions 为分区数量
kafka-topics.bat --create --bootstrap-server localhost:9092 --replication-factor 1 --partitions 1 --topic kafkatest

#查看所有的topics
kafka-topics.bat --bootstrap-server localhost:9092 --list

创建主题:在bin目录的windows目录下添加CMD窗口,并输入上述创建topics的命令,如下创建主题kafkatest成功:

查看主题kafkatest:

5.2producer(生产者)发送消息

向刚刚创建的主题kafkatest里面发送消息的命令:

复制代码
kafka-console-producer.bat --broker-list localhost:9092 --topic kafkatest

向topics为kafkatest中发送消息:

5.3consumer(消费者)消费消息

重新在同一个目录下打开一个新的cmd窗口,并执行如下命令:

复制代码
kafka-console-consumer.bat --bootstrap-server localhost:9092 --topic kafkatest --from-beginning

输入命令后可以查看到接收到消息了,但是是乱码,如果收不到消息,可以仔细查看生产者和消费者对应的topics是否为同一个。如果继续在生产者窗口输入消息,然后回车:

再查看消费者窗口,发现消息很快被消费者消费了:

6.乱码解决永久

打开config目录下的配置文件:

在文件中查找producer.encoding属性,若能找到就设置值为:UTF-8,我的找不到就添加配置:

复制代码
producer.encoding=UTF-8

如下:

保存文件然后重启kafka:

重启后可查看刚刚创建的topic还存在:

相关推荐
JAVA面经实录91728 分钟前
Kafka面试题标准答案(面试背诵版)
分布式·面试·kafka
hh9501 小时前
Agent Plan x DeepSeek Harness:分布式Agent集群调度与负载均衡
运维·分布式·负载均衡·adg·agent plan·adg成都社区
2401_894915535 小时前
GEO 优化源码全解析:从搜索引擎到 AI 引擎的底层改写逻辑
java·服务器·前端·数据库·人工智能·分布式·搜索引擎
董可伦12 小时前
Spark 数据倾斜:原因、定位与处理方法
大数据·分布式·spark
夕除15 小时前
redis--007
数据库·分布式
阿里云云原生16 小时前
深入解析存算分离 Kafka:如何实现从 Topic 到 Iceberg Table 的原生入湖?
kafka
清风与日月21 小时前
Yitter.IdGenerator:高性能分布式唯一ID生成器详解
分布式·c#·.net·.netcore
FfHUCisI1 天前
Golang Redis 分布式锁
redis·分布式·golang
陈皮波比茶1 天前
RabbitMQ 消息队列
分布式·rabbitmq
敖行客 Allthinker1 天前
分布式远程研发团队,借助云 IDE 统一开发环境
ide·分布式