当前位置:首页 > 修改聊天记录 > 正文内容

Kafka 4.1.1 生产集群部署完整指南(手把手教程)

网页编辑4个月前 (04-27)修改聊天记录264

一、集群规划(生产最小推荐 3 节点)

示例 3 节点:
  • kafka-1:192.168.1.101

  • kafka-2:192.168.1.102

  • kafka-3:192.168.1.103

角色:所有节点同时为 broker + controller(生产常用)

二、环境准备(所有节点)

1. 系统要求

  • Linux(CentOS 7+/Ubuntu 20.04+)

  • Java 17+(Kafka 4.1 强制 Java 17)Apache Kafka

2. 安装 Java(所有节点)

bash
运行
# CentOSsudo yum install -y java-17-openjdk# Ubuntusudo apt install -y openjdk-17-jdk# 验证java -version

3. 关闭防火墙 / 放行端口

bash
运行
# 关闭(或放行 9092、9093)sudo systemctl stop firewalldsudo systemctl disable firewalld

4. 创建用户(推荐非 root 运行)

bash
运行
sudo useradd kafkasudo passwd kafkasudo mkdir -p /opt/kafka /data/kafka-logs /data/kafka-metasudo chown -R kafka:kafka /opt/kafka /data/kafka-logs /data/kafka-meta

三、下载安装 Kafka 4.1.1(所有节点)

bash
运行
# 切换 kafka 用户su - kafka# 下载(Scala 2.13)wget https://downloads.apache.org/kafka/4.1.1/kafka_2.13-4.1.1.tgz# 解压到 /opt/kafkatar -zxf kafka_2.13-4.1.1.tgz -C /opt/mv /opt/kafka_2.13-4.1.1/* /opt/kafka/rm -rf /opt/kafka_2.13-4.1.1# 目录结构/opt/kafka
├── bin/
├── config/
└── logs/

四、配置 server.properties(所有节点,关键)

节点 1(kafka-1,192.168.1.101)
bash
运行
vim /opt/kafka/config/server.properties
ini
# 基础node.id=1process.roles=broker,controller# 监听listeners=PLAINTEXT://0.0.0.0:9092,CONTROLLER://0.0.0.0:9093advertised.listeners=PLAINTEXT://192.168.1.101:9092listener.security.protocol.map=PLAINTEXT:PLAINTEXT,CONTROLLER:PLAINTEXTinter.broker.listener.name=PLAINTEXT# KRaft 仲裁controller.quorum.voters=1@192.168.1.101:9093,2@192.168.1.102:9093,3@192.168.1.103:9093controller.listener.names=CONTROLLER# 数据目录log.dirs=/data/kafka-logsmetadata.log.dir=/data/kafka-meta# 生产默认num.partitions=3default.replication.factor=2min.insync.replicas=1log.retention.hours=168log.segment.bytes=1073741824
节点 2(kafka-2,192.168.1.102)
仅改 3 处:
ini
node.id=2advertised.listeners=PLAINTEXT://192.168.1.102:9092
节点 3(kafka-3,192.168.1.103)
ini
node.id=3advertised.listeners=PLAINTEXT://192.168.1.103:9092
注意:KRaft 不再需要 zookeeper.connect删掉或注释

五、初始化集群(仅一次,任意节点执行)

1. 生成集群 UUID

bash
运行
/opt/kafka/bin/kafka-storage.sh random-uuid# 输出类似:6UlNw0IfR5-mEArqnPh1aQ(记下来)

2. 格式化所有节点存储(每个节点都要执行,用上面的 UUID)

bash
运行
# 节点 1/opt/kafka/bin/kafka-storage.sh format \
  -t 6UlNw0IfR5-mEArqnPh1aQ \
  -c /opt/kafka/config/server.properties# 节点 2/opt/kafka/bin/kafka-storage.sh format \
  -t 6UlNw0IfR5-mEArqnPh1aQ \
  -c /opt/kafka/config/server.properties# 节点 3/opt/kafka/bin/kafka-storage.sh format \
  -t 6UlNw0IfR5-mEArqnPh1aQ \
  -c /opt/kafka/config/server.properties
```{insert\_element\_1\_}---## 六、配置 systemd 服务(所有节点,生产必做)```bashsudo vim /etc/systemd/system/kafka.service
ini
[Unit]Description=Apache Kafka 4.1.1 (KRaft)After=network.target[Service]Type=simpleUser=kafkaGroup=kafkaEnvironment="KAFKA_HOME=/opt/kafka"Environment="PATH=/opt/kafka/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin"WorkingDirectory=/opt/kafkaExecStart=/opt/kafka/bin/kafka-server-start.sh /opt/kafka/config/server.propertiesExecStop=/opt/kafka/bin/kafka-server-stop.shRestart=on-failureRestartSec=5[Install]WantedBy=multi-user.target
加载并设置开机自启:
bash
运行
sudo systemctl daemon-reloadsudo systemctl enable kafka

七、启动集群(所有节点)

bash
运行
sudo systemctl start kafka# 查看状态sudo systemctl status kafka# 查看日志(排错用)tail -f /opt/kafka/logs/server.log

八、验证集群(任意节点)

1. 查看 KRaft 控制器状态

bash
运行
/opt/kafka/bin/kafka-metadata-quorum.sh \
  --bootstrap-controller=192.168.1.101:9093 \
  describe --replication
能看到 leader、follower 即正常

2. 创建测试 Topic

bash
运行
/opt/kafka/bin/kafka-topics.sh \
  --create --topic test-topic \
  --bootstrap-server 192.168.1.101:9092 \
  --partitions 3 --replication-factor 2

3. 生产 / 消费测试

bash
运行
# 生产/opt/kafka/bin/kafka-console-producer.sh \
  --topic test-topic --bootstrap-server 192.168.1.101:9092# 消费(新窗口)/opt/kafka/bin/kafka-console-consumer.sh \
  --topic test-topic --from-beginning \
  --bootstrap-server 192.168.1.101:9092

九、生产环境关键优化(必做)

  1. JVM 内存(默认太小)

bash
运行
vim /opt/kafka/bin/kafka-server-start.sh# 修改export KAFKA_HEAP_OPTS="-Xms4G -Xmx4G"  # 生产按内存调整,一般 4~8G
  1. 文件句柄 / 线程数

bash
运行
sudo vim /etc/security/limits.conf
kafka soft nofile 65535kafka hard nofile 65535kafka soft nproc 65535kafka hard nproc 65535
  1. 磁盘log.dirs 用独立高速磁盘,不要和系统盘混放


十、常用运维命令

bash
运行
# 停止sudo systemctl stop kafka# 查看 Topic 列表/opt/kafka/bin/kafka-topics.sh --list --bootstrap-server 192.168.1.101:9092# 查看 Topic 详情/opt/kafka/bin/kafka-topics.sh --describe --topic test-topic --bootstrap-server 192.168.1.101:9092


扫描二维码推送至手机访问。

版权声明:本文由手机数据加工厂发布,如需转载请注明出处。

本文链接:https://www.gaijilu.com/?id=173

“Kafka 4.1.1 生产集群部署完整指南(手把手教程)” 的相关文章

手机用久了变卡顿,教你6步操作,手机立马流畅如新

手机用久了变卡顿,教你6步操作,手机立马流畅如新

手机卡顿,就如同一条,搁浅的电子“咸鱼”每一次滑动时,都伴随着,沉重的喘息。屏幕反应,慢上半拍,游戏帧率,犹如疯狂地跳水,就连扫码付款,也变成了一种,耐心的考验。但切莫着急换新机!今日这6步操作,便可让你的手机,由“老黄牛”变回“小猎豹”,流畅如初!一、深度清理:揪出空间"隐形杀手&quo...

微信、支付宝、网购订单模拟生成截图软件

微信、支付宝、网购订单模拟生成截图软件

通过简单的设置,可以方便的生成您想要的截图。如微信对话、微信转账、微信红包、微信钱包、微信零钱、支付宝聊天对话、支付宝转账等强大功能 。有了这款软件用户可以随意编辑截图,包括聊天内容,手机壁纸,甚至是转账截图,都可以进行自定义的调整,为大家的生活提供了更多的便利。复制链接到浏览器打开,注册、下载安装...

关闭这几个设置,手机瞬间杜绝监听偷窥

1. 关闭多余定位权限所有无关 APP,全部关掉定位只给地图、外卖临时用拒绝 24 小时跟踪你的行踪2. 关闭相机、麦克风权限小游戏、杂牌软件、工具箱全部禁用相机 + 麦克风防止后台偷偷录音、偷拍3. 关闭自动读取剪贴板杜绝 APP 偷看你复制的密码、验证码、聊天内容隐私再也不被偷偷收集4. 关闭后...

手机与电脑如何传递数据

手机+电脑 极简传文件速查表(直接照做,保存备忘录) 一、通用懒人(所有手机+电脑,小文件) 微信/QQ文件传输助手 1. 手机、电脑登录同一账号 2. 互相发送图片、文档、截图 3. 缺点:视频、图片会压缩,大文件慢 二、有线极速(原图/大视频/无压缩,推荐) 安卓 + 电...

苹果iPhone+Mac如何开启WiFi+蓝牙

下面直接给你「一步到位」的极简版,照着点就行(为了隔空投送,**Wi‑Fi 和蓝牙都要开,不需要连同一个 Wi‑Fi 也能投送**)。 --- iPhone 打开 Wi‑Fi + 蓝牙(两种方法) 方法1:控制中心(最快) - 全面屏 iPhone(带刘海):**右上角往下滑**...

iPhone如何快速整理你的相册 iPhone怎么备份照片比较方便

iPhone如何快速整理你的相册 iPhone怎么备份照片比较方便

一、iPhone如何快速整理你的相册当手机中的照片或视频太多,管理变得越来越麻烦时,我们可以利用相册中自带的功能对照片进行分类,下面看看iPhone如何快速整理相册。1、打开手机中的【照片】,点击底部导航栏中的【相簿】按钮。在页面左上方点击【+】号图标,在弹出的列表中选择【新建相簿】,如下图所示。图...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。