沉梦听雨的编程指南 沉梦听雨的编程指南
首页
  • 基础篇
  • 集合篇
  • 并发篇
  • JVM
  • 新特性
  • 计算机网络
  • 操作系统
  • 数据结构与算法
  • 基础篇
  • MySql
  • Redis
  • 达梦数据库
  • Spring
  • SpringBoot
  • Mybatis
  • Shiro
  • 设计须知
  • UML画图
  • 权限校验
  • 设计模式
  • API网关
  • RPC
  • 消息队列
  • SpringCloud
  • 分布式事务
  • 云存储
  • 搜索引擎
  • 多媒体框架
  • 虚拟机
  • 开发工具篇
  • 工具库篇
  • 开发技巧篇
  • 工具类系列
  • 随笔
  • 前端环境搭建
  • HTML与CSS
  • JS学习
  • Vue3入门
  • Vue3进阶
  • 黑马Vue3
  • 脚手架搭建
  • 瑞吉外卖
  • 黑马点评
  • vue-blog
  • 沉梦接口开放平台
  • 用户中心
  • 聚合搜索平台
  • 仿12306项目
  • 壁纸小程序项目
  • RuoYi-Vue
  • 博客搭建
  • 网站收藏箱
  • 断墨寻径摘录
  • 费曼学习法
Github (opens new window)

沉梦听雨

时间是最好的浸渍剂,而沉淀是最好的提纯器🚀
首页
  • 基础篇
  • 集合篇
  • 并发篇
  • JVM
  • 新特性
  • 计算机网络
  • 操作系统
  • 数据结构与算法
  • 基础篇
  • MySql
  • Redis
  • 达梦数据库
  • Spring
  • SpringBoot
  • Mybatis
  • Shiro
  • 设计须知
  • UML画图
  • 权限校验
  • 设计模式
  • API网关
  • RPC
  • 消息队列
  • SpringCloud
  • 分布式事务
  • 云存储
  • 搜索引擎
  • 多媒体框架
  • 虚拟机
  • 开发工具篇
  • 工具库篇
  • 开发技巧篇
  • 工具类系列
  • 随笔
  • 前端环境搭建
  • HTML与CSS
  • JS学习
  • Vue3入门
  • Vue3进阶
  • 黑马Vue3
  • 脚手架搭建
  • 瑞吉外卖
  • 黑马点评
  • vue-blog
  • 沉梦接口开放平台
  • 用户中心
  • 聚合搜索平台
  • 仿12306项目
  • 壁纸小程序项目
  • RuoYi-Vue
  • 博客搭建
  • 网站收藏箱
  • 断墨寻径摘录
  • 费曼学习法
Github (opens new window)
  • API网关

  • RPC

  • 消息队列

    • 内存

    • Redis

    • RocketMQ

    • Kafka

      • Kafka基础小结
      • Kafka的下载安装以及使用
        • 官方文档
        • 下载
        • 脚本说明
        • 快速开始
          • 1、修改配置
          • 2、启动 Zookeeper
          • 3、启动 Kafka
          • 4、创建主题
          • 5、启动生产者
          • 6、启动消费者
          • 关闭 Kafka
        • 可视化界面
          • 1、kafka-console-ui
          • 快速启动
          • Windows
          • Linux 或 Mac OS
          • 访问地址
          • 2、Kafka-King
          • 3、kafka-ui
          • 4、EFAK
        • 踩坑小记
        • 学习参考
      • SpringBoot使用Kafka示例
      • SpringCloud使用Kafka
      • Kafka实现延迟消息
  • Spring Cloud

  • 分布式事务

  • 云存储

  • 搜索引擎

  • 多媒体框架

  • 虚拟机

  • 微服务
  • 消息队列
  • Kafka
沉梦听雨
2024-09-07
目录

Kafka的下载安装以及使用

# Kafka 的下载安装以及使用

# 官方文档

  • 官方文档 (opens new window)
  • Kafka 中文文档 - ApacheCN (opens new window)

# 下载

最新版下载:downloads (opens new window)

image

# 脚本说明

项目 Value
connect-standalone.sh (opens new window) 用于启动单节点的Standalone模式的Kafka Connect组件。
connect-distributed.sh (opens new window) 用于启动多节点的Distributed模式的Kafka Connect组件。
kafka-acls.sh (opens new window) 脚本用于设置Kafka权限,比如设置哪些用户可以访问Kafka的哪些TOPIC的权限。
kafka-delegation-tokens.sh (opens new window) 用于管理Delegation Token。基于Delegation Token的认证是一种轻量级的认证机制,是对SASL认证机制的补充。
kafka-topics.sh (opens new window) 用于管理所有TOPIC。
kafka-console-producer.sh (opens new window) 用于生产消息。
kafka-console-consumer.sh (opens new window) 用于消费消息。
kafka-producer-perf-test.sh (opens new window) 用于生产者性能测试。
kafka-consumer-perf-test.sh (opens new window) 用于消费者性能测试。
kafka-delete-records.sh (opens new window) 用于删除Kafka的分区消息,由于Kafka有自己的自动消息删除策略,使用率不高。
kafka-dump-log.sh (opens new window) 用于查看Kafka消息文件的内容,包括消息的各种元数据信息、消息体数据。
kafka-log-dirs.sh (opens new window) 用于查询各个Broker上的各个日志路径的磁盘占用情况。
kafka-mirror-maker.sh (opens new window) 用于在Kafka集群间实现数据镜像。
kafka-preferred-replica-election.sh (opens new window) 用于执行Preferred Leader选举,可以为指定的主题执行更换Leader的操作。
kafka-reassign-partitions.sh (opens new window) 用于执行分区副本迁移以及副本文件路径迁移。
kafka-run-class.sh (opens new window) 用于执行任何带main方法的Kafka类。
kafka-server-start.sh (opens new window) 用于启动Broker进程。
kafka-server-stop.sh (opens new window) 用于停止Broker进程。
kafka-streams-application-reset.sh (opens new window) 用于给Kafka Streams应用程序重设位移,以便重新消费数据。
kafka-verifiable-producer.sh (opens new window) 用于测试验证生产者的功能。
kafka-verifiable-consumer.sh (opens new window) 用于测试验证消费者功能。
trogdor.sh (opens new window) 是Kafka的测试框架,用于执行各种基准测试和负载测试。
kafka-broker-api-versions.sh (opens new window) 脚本主要用于验证不同Kafka版本之间服务器和客户端的适配性

# 快速开始

官方:Apache Kafka QUICKSTART (opens new window)

# 1、修改配置

  1. 修改日志存储路径:设置 log.dirs 为 Kafka 日志存储路径,如:
# 修改配置文件 config/server.properties
vim config/server.properties

# 设置为你希望存放的目录路径(根据环境设置)
# Linux
log.dirs=/usr/local/kafka/logs
# Windows
log.dirs=D:\\kafka\\kafka_3.9.0\\logs\\kafka-logs

# 修改配置文件 config/zookeeper.properties
vim config/zookeeper.properties

# 设置为你希望存放的目录路径(根据环境设置)
# Linux
log.dirs=/usr/local/zookeeper/logs
# Windows
dataDir=D:\\kafka\\kafka_3.9.0\\logs\\zookeeper-logs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
  1. 修改 listeners 配置: 将 listeners 配置中的主机名(如 your.host.name)替换为对应的 IP 地址。(即更换节点显示内容)

    例如,如果你的服务器的 IP 地址是 192.168.1.100,可以这样配置:

listeners=PLAINTEXT://192.168.1.100:9092
1

在 Kafka 的配置文件中,

  • listeners 配置项默认使用主机名(即由 java.net.InetAddress.getCanonicalHostName() 获取),
  • 如果你希望 Kafka 显示 IP 地址 而不是主机名,可以通过修改 listeners 和 advertised.listeners 配置来实现。

# 2、启动 Zookeeper

在 kafka 目录下运行:

# Linux
$ bin/zookeeper-server-start.sh config/zookeeper.properties
# Windows
.\bin\windows\zookeeper-server-start.bat .\config\zookeeper.properties
1
2
3
4

Zookeeper 默认监听 2181 端口,你可以通过以下命令来检查该端口是否已经被占用:

netstat -ano | findstr :2181
1

如果该端口正在被 Zookeeper 使用,你会看到类似以下的输出(表示进程已经在监听该端口):

TCP    0.0.0.0:2181             0.0.0.0:0              LISTENING       <pid>
1

pid 是占用该端口的进程 ID。

  • 如果你看到输出,那么 Zookeeper 可能仍然在运行。
  • 如果没有输出,表示 Zookeeper 进程已经停止。

# 3、启动 Kafka

在 kafka 目录下运行(新开一个终端会话):

# Linux
$ bin/kafka-server-start.sh config/server.properties
# Windows
.\bin\windows\kafka-server-start.bat .\config\server.properties
1
2
3
4

# 4、创建主题

# Linux
$ bin/kafka-topics.sh --create --topic quickstart-events --bootstrap-server localhost:9092
# Windows
.\bin\windows\kafka-topics.bat --create --topic quickstart-events --bootstrap-server localhost:9092
1
2
3
4

# 5、启动生产者

# Linux
$ bin/kafka-console-producer.sh --topic quickstart-events --bootstrap-server localhost:9092
# Windows
.\bin\windows\kafka-console-producer.bat --topic quickstart-events --bootstrap-server localhost:9092

>This is my first event
>This is my second event
1
2
3
4
5
6
7

# 6、启动消费者

# Linux
$ bin/kafka-console-consumer.sh --topic quickstart-events --from-beginning --bootstrap-server localhost:9092
# Windows
.\bin\windows\kafka-console-consumer.bat --topic quickstart-events --from-beginning --bootstrap-server localhost:9092
1
2
3
4

# 关闭 Kafka

1、一定要先关闭 kafka,再关闭 zookeeper,否则容易出现数据错乱

如果出现数据错错乱,最简单的方法就是清空 data 和 kafka-logs 这两个文件下的内容,重新启动即可

2、关闭

# Windows
.\bin\windows\kafka-server-stop.bat
.\bin\windows\zookeeper-server-stop.bat
1
2
3

# 可视化界面

# 1、kafka-console-ui

地址:kafka-console-ui: 一款快捷易用的轻量级kafka可视化管理平台 (opens new window)

# 快速启动

# Windows
  1. 解压缩 zip 安装包
  2. 进入 bin 目录(必须在 bin 目录下),双击执行 start.bat 启动
  3. 停止:直接关闭启动的命令行窗口即可
# Linux 或 Mac OS
# 解压缩
unzip kafka-console-ui.zip
# 进入解压缩后的目录
cd kafka-console-ui
# 启动
sh bin/start.sh
# 停止
sh bin/shutdown.sh
1
2
3
4
5
6
7
8

# 访问地址

启动完成,访问:http://127.0.0.1:7766

# 2、Kafka-King

地址:Bronya0/Kafka-King: A modern and practical kafka GUI client 💕🎉 (opens new window)

# 3、kafka-ui

地址:provectus/kafka-ui: Open-Source Web UI for Apache Kafka Management (opens new window)

# 4、EFAK

地址:smartloli/EFAK: A easy and high-performance monitoring system, for comprehensive monitoring and management of kafka cluster. (opens new window)

# 踩坑小记

1、命令行太长问题

原因分析:上级目录名称太长,需要修改存储位置

  • kafka 在Win10存放目录过深 ,导致启动失败,提示“输入行太长。 命令语法不正确”。_输入行太长。 命令语法不正确。-CSDN博客 (opens new window)

# 学习参考

  • Kafka的下载安装以及使用 - 技术栈 (jishuzhan.net) (opens new window)
  • 芋道 Kafka 极简入门 | 芋道源码 —— 纯源码解析博客 (opens new window)
  • Windows安装Kafka教程 (opens new window)
  • kafka下载、安装与部署保姆级教程(windows、linux) - Marydon - 博客园 (opens new window)
  • kafka安装说明以及在项目中使用 - 技术栈 (opens new window)
上次更新: 2025/3/31 17:43:18
Kafka基础小结
SpringBoot使用Kafka示例

← Kafka基础小结 SpringBoot使用Kafka示例→

Theme by Vdoing | Copyright © 2023-2025 沉梦听雨 | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式