Apache Kafka单节点极速部署指南:10分钟搭建开发单节点环境

Apache Kafka单节点极速部署指南:10分钟搭建开发单节点环境

Kafka简介:

Apache Kafka是由LinkedIn开发并捐赠给Apache基金会的分布式流处理平台,现已成为实时数据管道和流应用领域的行业标准。它基于高吞吐、低延迟的设计理念,能够轻松处理每秒百万级消息传输,具备水平扩展、数据持久化、高容错等核心特性。Kafka广泛应用于日志聚合、实时监控、事件溯源、消息队列等场景,是大数据生态中连接传统数据库与流处理引擎(如Flink、Spark)的关键组件,被腾讯云、Netflix、Uber等顶级互联网企业深度应用于核心业务系统。

文章目录

    • **Apache Kafka单节点极速部署指南:10分钟搭建开发单节点环境**
      • Kafka简介:
      • **一、环境准备与安装**
        • 1. 安装 Java(详细步骤)
        • 2. 下载并解压 Kafka
      • **二、配置文件详解**
        • 1. ZooKeeper 配置
        • 2. Kafka Broker 配置
      • **三、配置为系统服务(Systemd)**
        • 1. 创建 `ZooKeeper` 服务文件
        • 2. 创建 Kafka 服务文件
        • 3. 创建专用用户和目录(增强安全性)
        • 4. 修改配置文件中的持久化路径
        • 5. 启用服务
      • **四、验证服务*
        • 1. 功能测试(详细命令)
      • **五、关键配置项深度解析**
      • **六、故障排查指南**
        • 1. 查看服务日志
        • 2. 端口占用检查
        • 3. 文件权限修复

实战指南:构建高可用生产级Kafka集群的完整教程

一、环境准备与安装

1. 安装 Java(详细步骤)
# CentOS
sudo yum install -y java-1.8.0-openjdk-devel# Ubuntu
sudo apt update && sudo apt install -y openjdk-8-jdk# 验证安装
java -version  # 应输出类似 "openjdk version 1.8.0_382"

img_v3_02k2_52113089-36a0-4f01-8a1b-34fc2e5e655g

img_v3_02k2_dcc5330b-b557-4edc-900c-807ccc54997g

2. 下载并解压 Kafka
wget https://downloads.apache.org/kafka/3.6.1/kafka_2.13-3.6.1.tgz
tar -xzf kafka_2.13-3.6.1.tgz
mv kafka_2.13-3.6.1 /opt/kafka  # 建议移动到标准化目录
cd /opt/kafka

如果服务器网络不佳可在Kafka官网手动下载并上传至服务器:

下载地址:Apache Kafka

image-20250304153350958

img_v3_02k2_e958fbda-bb64-45b6-9426-c4d51ac9056g

img_v3_02k2_7e453cb2-d663-4812-8411-440231dfab7g


二、配置文件详解

1. ZooKeeper 配置

config/zookeeper.properties

# 数据存储目录(重要:生产环境需改为持久化路径,如 /var/lib/zookeeper)
dataDir=/tmp/zookeeper# 客户端连接端口
clientPort=2181# 最大客户端连接数(0 表示无限制)
maxClientCnxns=0# 集群配置(单节点无需配置)
# server.1=zk-node1:2888:3888
# server.2=zk-node2:2888:3888

image-20250304151028285

2. Kafka Broker 配置

config/server.properties

# Broker 的唯一标识(集群中每个节点必须不同)
broker.id=0# 监听地址和协议(生产环境建议用具体IP,如 PLAINTEXT://192.168.1.100:9092)
listeners=PLAINTEXT://:9092# Kafka 日志存储目录(生产环境需改为持久化路径,如 /var/lib/kafka-logs)
log.dirs=/tmp/kafka-logs# 每个 Topic 的默认分区数(影响并行度)
num.partitions=1# ZooKeeper 连接地址(集群用逗号分隔,如 zk1:2181,zk2:2181)
zookeeper.connect=localhost:2181# 其他重要参数(可选)
# 日志保留时间(小时)
log.retention.hours=168
# 单个日志文件最大大小(字节)
log.segment.bytes=1073741824
# 网络线程数
num.network.threads=3
# IO 线程数
num.io.threads=8

image-20250304151400265


三、配置为系统服务(Systemd)

1. 创建 ZooKeeper 服务文件
sudo vim /etc/systemd/system/zookeeper.service

内容如下:

[Unit]
Description=Apache ZooKeeper Service
After=network.target[Service]
Type=simple
User=kafka  # 建议创建专用用户(见下方说明)
Group=kafka
ExecStart=/opt/kafka/bin/zookeeper-server-start.sh /opt/kafka/config/zookeeper.properties
ExecStop=/opt/kafka/bin/zookeeper-server-stop.sh
Restart=on-failure
RestartSec=10s[Install]
WantedBy=multi-user.target
2. 创建 Kafka 服务文件
sudo vim /etc/systemd/system/kafka.service

内容如下:

[Unit]
Description=Apache Kafka Service
After=zookeeper.service[Service]
Type=simple
User=kafka
Group=kafka
ExecStart=/opt/kafka/bin/kafka-server-start.sh /opt/kafka/config/server.properties
ExecStop=/opt/kafka/bin/kafka-server-stop.sh
Restart=on-failure
RestartSec=10s[Install]
WantedBy=multi-user.target
3. 创建专用用户和目录(增强安全性)
sudo useradd -r -s /bin/false kafka
sudo mkdir -p /var/lib/{zookeeper,kafka-logs}
sudo chown -R kafka:kafka /var/lib/{zookeeper,kafka-logs} /opt/kafka
4. 修改配置文件中的持久化路径
  • 修改 zookeeper.properties

    dataDir=/var/lib/zookeeper
    
  • 修改 server.properties

    log.dirs=/var/lib/kafka-logs
    
5. 启用服务
sudo systemctl daemon-reload
sudo systemctl enable --now zookeeper
sudo systemctl enable --now kafka# 检查状态
sudo systemctl status zookeeper kafka

img_v3_02k2_6bdc2a6f-4766-4b1b-986b-21fdbda0eeeg


*四、验证服务

1. 功能测试(详细命令)
# 创建 Topic(明确指定分区和副本)
/opt/kafka/bin/kafka-topics.sh --create \--topic test-topic \--bootstrap-server localhost:9092 \--partitions 3 \--replication-factor 1# 生产消息(输入多行消息后按 Ctrl+C 退出)
/opt/kafka/bin/kafka-console-producer.sh \--topic test-topic \--bootstrap-server localhost:9092# 消费消息(新终端执行)
/opt/kafka/bin/kafka-console-consumer.sh \--topic test-topic \--bootstrap-server localhost:9092 \--from-beginning

测试效果如图:img_v3_02k2_2622cef6-4d6d-49d5-9789-f49dc8bee5eg

img_v3_02k2_f20fc217-645c-4c9e-ba17-7e7956bc14ag

img_v3_02k2_59014a5c-8571-4b5d-8063-76a6f0f60e8g


五、关键配置项深度解析

配置项作用说明生产环境建议值
broker.idBroker 的唯一标识,集群中必须唯一数字递增(0,1,2…)
listenersBroker 监听的网络地址和协议使用服务器内网IP,如 PLAINTEXT://192.168.1.100:9092
log.dirsKafka 数据存储目录,多个目录用逗号分隔可提升性能挂载独立磁盘,如 /data/kafka-logs
zookeeper.connectZooKeeper 集群地址,格式为 host1:port1,host2:port2至少3节点集群
num.partitions新建 Topic 的默认分区数(影响并行处理能力)根据业务需求设置(通常3-10)
log.retention.hours消息保留时间按业务需求(如 168=7天)
default.replication.factor新建 Topic 的默认副本数(高可用关键)至少2,集群节点数≥副本数

六、故障排查指南

1. 查看服务日志
# ZooKeeper 日志
journalctl -u zookeeper -f# Kafka 日志
journalctl -u kafka -f
2. 端口占用检查
sudo netstat -tlnp | grep -E '2181|9092'
3. 文件权限修复
sudo chown -R kafka:kafka /var/lib/{zookeeper,kafka-logs}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/29983.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

浅论数据库聚合:合理使用LambdaQueryWrapper和XML

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、数据库聚合替代内存计算(关键优化)二、批量处理优化四、区域特殊处理解耦五、防御性编程增强 前言 技术认知点:使用 XM…

【C++设计模式】第四篇:建造者模式(Builder)

注意:复现代码时,确保 VS2022 使用 C17/20 标准以支持现代特性。 分步骤构造复杂对象,实现灵活装配 1. 模式定义与用途 核心目标:将复杂对象的构建过程分离,使得同样的构建步骤可以创建不同的表示形式。 常见场景&am…

uploadlabs经验总结

目录 一、基础上传漏洞(太过简单目前环境不可能存在) 1、抓包然后改后缀进行绕过 2、抓包然后改上传文件类型进行绕过 3、改后缀大小写绕过,以及收尾加空格,加::$DATA,加点等等 4、黑名单不完整绕过,复习后缀绕过&…

若依ry-vue分离板(完整版)前后端部署

目录 1.目标 2.准备工作 3.源码下载 4.整理前后端目录 5.先部署后端 (1)导入数据库 (2)改代码数据库配置 (3)运行redis (4)运行执行文件 (5)后端启…

重构谷粒商城09:人人开源框架的快速入门

谷粒商城09——人人开源框架的快速入门 前言:这个系列将使用最前沿的cursor作为辅助编程工具,来快速开发一些基础的编程项目。目的是为了在真实项目中,帮助初级程序员快速进阶,以最快的速度,效率,快速进阶…

Linux | Vim 鼠标不能右键粘贴、跨系统复制粘贴

注:本文为 “ Vim 中鼠标右键粘贴、跨系统复制粘贴问题解决方案” 相关文章合辑。 未整理去重。 Linux 入门:vim 鼠标不能右键粘贴、跨系统复制粘贴 foryouslgme 发布时间 2016 - 09 - 28 10:24:16 Vim基础 命令模式(command-mode)插入模式(insert-m…

【JavaWeb】Web基础概念

文章目录 1、服务器与客户端2、服务器端应用程序3、请求和响应4、项目的逻辑构成5、架构5.1 概念5.2 发展演变历程单一架构分布式架构 5.3 单一架构技术体系 6、本阶段技术体系 1、服务器与客户端 ①线下的服务器与客户端 ②线上的服务器与客户端 2、服务器端应用程序 我…

基于云的内容中台核心优势是什么?

弹性云架构赋能资源整合 现代企业通过弹性云架构实现多源数据资源的深度整合,其动态扩展能力可自动适配业务流量波动。基于分布式存储与容器化部署,系统能够无缝对接CRM、ERP等企业软件集成,实现跨平台数据实时同步。值得注意的是&#xff0…

数据库基础练习1

目录 1.创建数据库和表 2.插入数据 创建一个数据库,在数据库种创建一张叫heros的表,在表中插入几个四大名著的角色: 1.创建数据库和表 #创建表 CREATE DATABASE db_test;#查看创建的数据库 show databases; #使用db_test数据库 USE db_te…

亲测解决笔记本触摸板使用不了Touchpad not working

这个问题可以通过FnFxx来解决,笔记本键盘上Fxx会有一个触摸板图标。如果不行应该玉藻设置中关了,打开即可。 解决办法 在蓝牙,触摸板里打开即可。 Turn it on in settings。

Vue23Web 基礎性拉滿的面試題(2025版)還沒更新完...

Vue2&3 基礎性1. 關於Vue2和Vue3生命週期的差別2. Vue2&3組件之間傳參不同點Vue2 傳遞與接收Vue3 傳遞與接收 (使用script setup語法糖)Vue3 傳遞與接收 (不使用script setup語法糖) 3. Vue2&3 keep-alive 組件Vue2 keep-aliveVue3 keep-alive 進階性爲什麽POST請求…

动态ip和静态ip适用于哪个场景?有何区别

在数字化浪潮席卷全球的今天,IP地址作为网络世界的“门牌号”,其重要性不言而喻。然而,面对动态IP与静态IP这两种截然不同的IP分配方式,许多用户往往感到困惑:它们究竟有何区别?又分别适用于哪些场景呢&…

深度学习模型Transformer核心组件—自注意力机制

第一章:人工智能之不同数据类型及其特点梳理 第二章:自然语言处理(NLP):文本向量化从文字到数字的原理 第三章:循环神经网络RNN:理解 RNN的工作机制与应用场景(附代码) 第四章:循环神经网络RNN、LSTM以及GR…

FreeRTOS 源码结构解析与 STM32 HAL 库移植实践(任务创建、删除篇)

1. FreeRTOS源码结构介绍 1.1 下载源码 ​ 点击官网地址,选择 FreeRTOS 202212.01非 LTS 版本(非长期支持版),因为这个版本有着最全的历程和更多型号处理器支持。 1.2 文件夹结构介绍 ​ 下载后主文件 FreeRTOSv202212.01 下包…

【uniapp】图片添加canvas水印

目录 需求&背景实现地理位置添加水印 ios补充 需求&背景 需求:拍照后给图片添加水印, 水印包含经纬度、用户信息、公司logo等信息。 效果图: 方案:使用canvas添加水印。 具体实现:上传图片组件是项目里现有的&#xff…

基于Windows11的DockerDesktop安装和布署方法简介

基于Windows11的DockerDesktop安装和布署方法简介 一、下载安装Docker docker 下载地址 https://www.docker.com/ Download Docker Desktop 选择Download for Winodws AMD64下载Docker Desktop Installer.exe 双点击 Docker Desktop Installer.exe 进行安装 测试Docker安装是…

AI自习室渐兴:人工智能赋能教育新场景的深度剖析

在数字化浪潮席卷全球的今天,教育领域也迎来了前所未有的变革。近年来,AI自习室作为人工智能技术与传统教育融合的产物,在河北等多地悄然兴起,成为学生们的新宠。这一新兴的学习场所,不仅引发了社会的广泛关注&#xf…

Android中AIDL和HIDL的区别

在Android中,AIDL(Android Interface Definition Language) 和 HIDL(HAL Interface Definition Language) 是两种用于定义跨进程通信接口的语言。AIDL 是 Android 系统最早支持的 IPC(进程间通信&#xff0…

从0开始的操作系统手搓教程23:构建输入子系统——实现键盘驱动1——热身驱动

目录 所以,键盘是如何工作的 说一说我们的8042 输出缓冲区寄存器 状态寄存器 控制寄存器 动手! 注册中断 简单整个键盘驱动 Reference ScanCode Table 我们下一步就是准备进一步完善我们系统的交互性。基于这个,我们想到的第一个可以…

【JavaEE】-- 多线程(初阶)4

文章目录 8.多线程案例8.1 单例模式8.1.1 饿汉模式8.1.2 懒汉模式 8.2 阻塞队列8.2.1 什么是阻塞队列8.2.2 生产者消费者模型8.2.3 标准库中的阻塞队列8.2.4 阻塞队列的应用场景8.2.4.1 消息队列 8.2.5 异步操作8.2.5 自定义实现阻塞队列8.2.6 阻塞队列--生产者消费者模型 8.3 …