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}

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【干货教程】Windows电脑本地部署运行DeepSeek R1大模型(基于Ollama和Chatbox)

文章目录 一、环境准备二、安装Ollama2.1 访问Ollama官方网站2.2 下载适用于Windows的安装包2.3 安装Ollama安装包2.4 指定Ollama安装目录2.5 指定Ollama的大模型的存储目录 三、选择DeepSeek R1模型四、下载并运行DeepSeek R1模型五、常见问题解答六、使用Chatbox进行交互6.1 …

TCP/IP 5层协议簇:网络层(ICMP协议)

1. TCP/IP 5层协议簇 如下: 和ip协议有关的才有ip头 2. ICMP 协议 ICMP协议没有端口号,因为不去上层,上层协议采用端口号

STM32标准库代码详解之GPIO

GPIO的初始化代码如下: /*开启时钟*/ RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); //开启GPIOA的时钟,使用外设必须开启/*GPIO初始化*/ GPIO_InitTypeDef GPIO_InitStructure; //定义结构体变量 GPIO_InitStructure.GPIO_Mode GPIO_Mo…

【Spring AOP】_切点类的切点表达式

目录 1. 根据方法签名匹配编写切点表达式 1.1 具体语法 1.2 通配符表达规范 2. 根据注解匹配编写切点表达式 2.1 实现步骤 2.2 元注解及其常用取值含义 2.3 使用自定义注解 2.3.1 编写自定义注解MyAspect 2.3.2 编写切面类MyAspectDemo 2.3.3 编写测试类及测试方法 在…

利用EasyCVR平台打造化工园区视频+AI智能化监控管理系统

化工园区作为化工产业的重要聚集地,其安全问题一直是社会关注的焦点。传统的人工监控方式效率低下且容易出现疏漏,已经难以满足日益增长的安全管理需求。 基于EasyCVR视频汇聚平台构建的化工园区视频AI智能化应用方案,能够有效解决这些问题&…

FPGA学习篇——Verilog学习3(关键字+注释方法+程序基本框架)

1 Verilog常用关键字 大概知道以下哪些是关键字就好,如何使用还是得在编写代码中来学习。 2 Verilog注释方法 Verilog有两种注释方式: 2.1 “ // ” 单行。 2.2 “ /* ... */ ” 可扩展多行。 3 Verilog程序基本框架 Verilog 的基本设计单元是“…

扩展------项目中集成阿里云短信服务

引言 在当今数字化时代,短信服务在各种项目中扮演着重要角色,如用户注册验证、订单通知、营销推广等。阿里云短信服务凭借其稳定、高效和丰富的功能,成为众多开发者和企业的首选。本文将详细介绍如何在项目中集成阿里云短信服务,帮…

XHR请求解密:抓取动态生成数据的方法

在如今动态页面大行其道的时代,传统的静态页面爬虫已无法满足数据采集需求。尤其是在目标网站通过XHR(XMLHttpRequest)动态加载数据的情况下,如何精准解密XHR请求、捕获动态生成的数据成为关键技术难题。本文将深入剖析XHR请求解密…

STM32-I2C通信协议

目录 一:什么是I2C通信协议 二:I2C通信 三:I2C时序图 四:面试常见问题 一:什么是I2C通信协议 I2C(Inter-Integrated Circuit)协议是一种串口通信协议,用于在集成电路之间传输数…

Jenkins在Windows上的使用(一):用户配置

(一)下载jenkins和jdk 下载地址 https://www.jenkins.io/download/ jdk下载地址 https://www.oracle.com/java/technologies/downloads/安装jenkins的时候会提示需要的jdk版本(二)windows下创建用户账户 1. 创建jenkins用户 …

MQTT协议下温度数据上报观测云最佳实践

MQTT 介绍 MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议)是一种轻量级的、基于发布/订阅模式的消息传输协议,专为低带宽、高延迟或不可靠的网络环境设计,广泛应用于物联网(IoT&#xf…

立即释放 Mac 空间!Duplicate File Finder 8 重复文件高速清理工具

Duplicate File Finder 专业的 Mac 重复文件清理工具。查找并删除重复的文件、文件夹,甚至相似的照片。 不要让无用的文件占用磁盘上的宝贵空间。 整理你的 Mac。用最好的重复文件查找器来管理你的文件集合。 扫描任何磁盘或文件夹 主文件夹、照片/音乐库、外部磁…

一文对比RAGFLOW和Open WebUI【使用场景参考】

一、RAGFLOW与Open WebUI RAGFLOW是一款基于深度文档理解构建的开源 RAG(Retrieval-Augmented Generation)引擎。RAGFlow 可以为各种规模的企业及个人提供一套精简的 RAG 工作流程,结合大语言模型(LLM)针对用户各类不…

SpringBoot整合Caffeine本地缓存

本文章摘自 Java技术小馆https://www.yuque.com/jtostring/am5oq3/ac34uu2liy50t042?singleDoc#LyUGd 在现代的微服务架构中,缓存已经成为提升系统性能、降低数据库压力和提高响应速度的关键技术之一。对于Java开发者而言,Spring Boot作为一种开发框架…

腾讯 TDF 即将开源 Kuikly 跨端框架,Kotlin 支持全平台

今天,在腾讯的 Shiply 平台看 Flutter 动态化自研框架 Conch 时,在侧边栏看到了有「跨端开发框架」的介绍,点开发现有两个产品: Hippy:面向前端技术栈的跨端开发框架,Web原生开发体验,支持 Rea…

性能案例经验总结

数据库案例总结案例一:索引创建不合适导致性能问题背景接口getResourceByRoleID在单交易测试时,发现接口响应时间过长,DB 消耗资源比较严重。 关键字db2advis 、执行计划、runstat 、权限接口 问题分析首先是找出接口调用的SQL语句,有两个方法通过DB2top 命令 查找通过以下提…

【哇! C++】类和对象(三) - 构造函数和析构函数

目录 一、构造函数 1.1 构造函数的引入 1.2 构造函数的定义和语法 1.2.1 无参构造函数: 1.2.2 带参构造函数 1.3 构造函数的特性 1.4 默认构造函数 二、析构函数 2.1 析构函数的概念 2.2 特性 如果一个类中什么成员都没有,简称为空类。 空类中…

分布式存储—— HBase数据模型 详解

目录 1.3 HBase数据模型 1.3.1 两类数据模型 1.3.2 数据模型的重要概念 1.3.3 数据模型的操作 1.3.4 数据模型的特殊属性 1.3.5 CAP原理与最终一致性 1.3.6 小结 本文章参考、总结于学校教材课本《HBase开发与应用》 1.3 HBase数据模型 在开始学习HBase之前非常…

WebSocket:实现实时通信的利器

在现代Web应用中,实时通信变得越来越重要。无论是聊天应用、在线游戏,还是实时数据推送,传统的HTTP请求-响应模式已经无法满足需求。WebSocket作为一种全双工通信协议,应运而生,成为实现实时通信的利器。本文将深入探讨…

Aruco 库详解:计算机视觉中的高效标记检测工具

1. 引言:Aruco 在计算机视觉中的重要性 在计算机视觉领域,标记(Marker)检测和识别是许多应用的基础,包括 机器人导航、增强现实(AR)、相机标定(Calibration)以及物体跟踪…