做app网站需要什么技术网站开发实训步骤

张小明 2026/1/8 16:55:25
做app网站需要什么技术,网站开发实训步骤,wordpress rss 新窗口,模板网站没有源代码Kafka 作为高吞吐、高可靠的分布式消息队列#xff0c;在大数据领域和微服务架构中应用广泛。搭建稳定的 Kafka 集群是其发挥作用的基础#xff0c;但跨系统环境搭建常面临各类问题。本文将分别详解 Windows 和 Linux 环境下 Kafka 集群的完整搭建流程#xff0c;并附上实战…Kafka 作为高吞吐、高可靠的分布式消息队列在大数据领域和微服务架构中应用广泛。搭建稳定的 Kafka 集群是其发挥作用的基础但跨系统环境搭建常面临各类问题。本文将分别详解 Windows 和 Linux 环境下 Kafka 集群的完整搭建流程并附上实战避坑手册助力开发者少走弯路。一、前置知识Kafka 集群核心依赖与架构在开始搭建前需明确 Kafka 集群的核心组成与依赖关系避免因基础认知缺失导致的配置混乱。1.1 核心依赖Kafka 依赖 ZooKeeper 进行集群管理Kafka 2.8 支持 KRaft 模式无需 ZooKeeper但生产环境仍以 ZooKeeper 模式为主因此搭建 Kafka 集群前需先部署 ZooKeeper 集群。同时两者均依赖 Java 环境需确保 JDK 版本符合要求推荐 JDK 1.8避免使用 JDK 11 及以上版本可能出现的兼容性问题。1.2 集群架构核心概念BrokerKafka 服务实例每个 Broker 对应一个节点集群中 Broker 数量建议为奇数便于选举最少 3 个节点保证高可用。Topic消息主题数据分类的逻辑单元每个 Topic 会被分为多个 Partition。Partition分区Kafka 并行处理的核心每个 Partition 数据有序多分区分布在不同 Broker 上实现负载均衡。Replica副本每个 Partition 的备份副本分布在不同 Broker 上确保节点故障时数据不丢失推荐副本数 2-3 个。Leader/Follower每个 Partition 有一个 Leader 副本处理读写请求其他为 Follower 副本同步数据Leader 故障时自动选举新 Leader。二、通用准备环境配置与安装包获取无论 Windows 还是 Linux 环境均需先完成以下通用准备工作。2.1 JDK 环境配置下载 JDK 1.8 版本如 jdk-8u381-linux-x64.tar.gz 或 jdk-8u381-windows-x64.exe官网地址Oracle JDK 归档页。安装并配置环境变量Linux解压至 /usr/local/jdk1.8编辑 /etc/profile添加export JAVA_HOME/usr/local/jdk1.8、export PATH$JAVA_HOME/bin:$PATH执行source /etc/profile生效通过java -version验证。Windows安装后在“系统环境变量”中添加 JAVA_HOME 指向安装目录在 Path 中添加 %JAVA_HOME%\bincmd 中执行java -version验证。2.2 安装包获取下载 Kafka 稳定版本推荐 2.8.x 或 3.0.x 版本如 kafka_2.13-3.5.1.tgz官网地址Kafka 下载页。注意 Kafka 版本命名格式为 kafka_scala版本-kafka版本Scala 版本不影响核心使用选择最新稳定版即可。2.3 集群节点规划以 3 节点集群为例规划如下实际环境需替换为真实 IP节点IP 地址Broker IDZooKeeper 角色节点 1192.168.1.101Linux/ 192.168.1.101Windows0Leader/Follower节点 2192.168.1.102Linux/ 192.168.1.102Windows1Leader/Follower节点 3192.168.1.103Linux/ 192.168.1.103Windows2Leader/Follower说明ZooKeeper 集群需 3 个节点实现高可用Kafka 与 ZooKeeper 可部署在同一节点也可分离部署生产环境建议分离以降低资源竞争。三、Linux 环境下 Kafka 集群搭建Linux 是 Kafka 集群的主流部署环境稳定性和性能更优以下以 CentOS 7 为例。3.1 ZooKeeper 集群搭建解压安装包将 ZooKeeper 安装包如 apache-zookeeper-3.8.4-bin.tar.gz上传至各节点解压至 /usr/local/zookeepertar -zxvf apache-zookeeper-3.8.4-bin.tar.gz -C /usr/local/ mv /usr/local/apache-zookeeper-3.8.4-bin /usr/local/zookeeper配置 zoo.cfg进入 /usr/local/zookeeper/conf 目录复制模板文件并修改cp zoo_sample.cfg zoo.cfg编辑 zoo.cfg核心配置如下# 数据存储目录需提前创建dataDir/usr/local/zookeeper/data日志存储目录需提前创建dataLogDir/usr/local/zookeeper/logs客户端连接端口clientPort2181集群节点配置server.节点IDIP:通信端口:选举端口server.0192.168.1.101:2888:3888server.1192.168.1.102:2888:3888server.2192.168.1.103:2888:3888心跳间隔tickTime2000初始化同步时间initLimit10同步超时时间syncLimit5设置节点 ID在各节点的 dataDir 目录下创建 myid 文件内容为对应节点的 ID如节点 1 写入 0节点 2 写入 1节点 3 写入 2mkdir -p /usr/local/zookeeper/data /usr/local/zookeeper/logs echo 0 /usr/local/zookeeper/data/myid启动 ZooKeeper 集群在各节点执行启动命令先启动从节点再启动主节点实际会自动选举/usr/local/zookeeper/bin/zkServer.sh start通过以下命令验证状态查看是否为 Leader 或 Follower/usr/local/zookeeper/bin/zkServer.sh status3.2 Kafka 集群配置与启动解压安装包将 Kafka 安装包上传至各节点解压至 /usr/local/kafkatar -zxvf kafka_2.13-3.5.1.tgz -C /usr/local/ mv /usr/local/kafka_2.13-3.5.1 /usr/local/kafka修改 server.properties进入 /usr/local/kafka/config 目录编辑核心配置文件 server.properties各节点需修改 Broker ID 和监听地址其他配置一致# 每个节点唯一的 Broker ID0、1、2 依次递增broker.id0监听地址PLAINTEXT 为明文协议需指定节点 IP避免使用 localhostlistenersPLAINTEXT://192.168.1.101:9092广告地址客户端实际连接的地址与 listeners 一致advertised.listenersPLAINTEXT://192.168.1.101:9092消息存储目录需提前创建log.dirs/usr/local/kafka/logsZooKeeper 集群地址用逗号分隔zookeeper.connect192.168.1.101:2181,192.168.1.102:2181,192.168.1.103:2181/kafka每个 Topic 的默认分区数num.partitions3每个 Partition 的默认副本数需小于等于 Broker 数量default.replication.factor2数据保留时间默认 7 天可根据需求调整log.retention.hours168单个日志文件大小限制log.segment.bytes1073741824ZooKeeper 连接超时时间zookeeper.connection.timeout.ms18000说明节点 2 和 3 需将 broker.id 分别改为 1 和 2listeners 和 advertised.listeners 改为对应节点的 IP。启动 Kafka 集群在各节点执行后台启动命令需先确保 ZooKeeper 已启动nohup /usr/local/kafka/bin/kafka-server-start.sh /usr/local/kafka/config/server.properties /usr/local/kafka/kafka.log 21启动后通过日志验证是否成功tail -f /usr/local/kafka/kafka.log若出现 “started (kafka.server.KafkaServer)” 则表示启动成功。3.3 集群功能验证创建 Topic在任意节点执行以下命令创建一个名为 test_topic 的 Topic指定 3 个分区和 2 个副本/usr/local/kafka/bin/kafka-topics.sh --create --topic test_topic --bootstrap-server 192.168.1.101:9092,192.168.1.102:9092,192.168.1.103:9092 --partitions 3 --replication-factor 2查看 Topic 信息验证 Topic 分区和副本分布情况/usr/local/kafka/bin/kafka-topics.sh --describe --topic test_topic --bootstrap-server 192.168.1.101:9092输出结果中会显示每个 Partition 的 Leader 和 Follower 节点。发送消息在节点 1 启动生产者发送消息/usr/local/kafka/bin/kafka-console-producer.sh --topic test_topic --bootstrap-server 192.168.1.101:9092输入任意消息后回车发送。接收消息在节点 2 启动消费者接收消息–from-beginning 表示从开头消费/usr/local/kafka/bin/kafka-console-consumer.sh --topic test_topic --bootstrap-server 192.168.1.102:9092 --from-beginning若能接收到生产者发送的消息说明集群通信正常。四、Windows 环境下 Kafka 集群搭建Windows 环境主要用于开发和测试生产环境不推荐。以下以 Windows 10 为例搭建 3 节点集群可在同一台机器通过不同端口模拟也可在多台 Windows 机器上部署。4.1 ZooKeeper 集群搭建多端口模拟解压安装包将 ZooKeeper 安装包解压至 D:\zookeeper为每个节点创建独立目录如 zk-node0、zk-node1、zk-node2。配置各节点 zoo.cfg以 zk-node0 为例进入 D:\zookeeper\zk-node0\conf复制 zoo_sample.cfg 为 zoo.cfg修改核心配置dataDirD:\zookeeper\zk-node0\data dataLogDirD:\zookeeper\zk-node0\logs clientPort2181 server.0127.0.0.1:2888:3888 server.1127.0.0.1:2889:3889 server.2127.0.0.1:2890:3890 tickTime2000 initLimit10 syncLimit5zk-node1 需修改 clientPort 为 2182dataDir 和 dataLogDir 对应自身目录zk-node2 客户端端口为 2183以此类推。设置节点 ID在各节点 data 目录下创建 myid 文件zk-node0 写入 0zk-node1 写入 1zk-node2 写入 2。启动 ZooKeeper 节点分别打开 3 个 cmd 窗口切换至各节点 bin 目录执行启动命令zkServer.cmd若窗口显示 “binding to port 0.0.0.0/0.0.0.0:2181” 等信息说明启动成功。4.2 Kafka 集群配置与启动多端口模拟解压安装包将 Kafka 安装包解压至 D:\kafka为每个节点创建独立目录如 kafka-node0、kafka-node1、kafka-node2。修改各节点 server.properties以 kafka-node0 为例进入 D:\kafka\kafka-node0\config编辑 server.propertiesbroker.id0 listenersPLAINTEXT://127.0.0.1:9092 advertised.listenersPLAINTEXT://127.0.0.1:9092 log.dirsD:\kafka\kafka-node0\logs zookeeper.connect127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183/kafka num.partitions3 default.replication.factor2 log.retention.hours168kafka-node1 需修改 broker.id1监听端口 9093kafka-node2 broker.id2监听端口 9094其他配置对应自身目录。启动 Kafka 节点分别打开 3 个 cmd 窗口切换至各节点 bin\windows 目录执行启动命令kafka-server-start.bat ..\..\config\server.properties若窗口显示 “Started KafkaServer” 则启动成功注意启动过程中不要关闭 cmd 窗口后台启动需通过脚本实现测试环境可直接保持窗口打开。4.3 集群功能验证创建 Topic打开新 cmd 窗口切换至任意 Kafka 节点的 bin\windows 目录执行kafka-topics.bat --create --topic test_topic --bootstrap-server 127.0.0.1:9092,127.0.0.1:9093,127.0.0.1:9094 --partitions 3 --replication-factor 2查看 Topic 信息kafka-topics.bat --describe --topic test_topic --bootstrap-server 127.0.0.1:9092发送与接收消息生产者新 cmd 窗口kafka-console-producer.bat --topic test_topic --bootstrap-server 127.0.0.1:9092消费者新 cmd 窗口kafka-console-consumer.bat --topic test_topic --bootstrap-server 127.0.0.1:9093 --from-beginning五、避坑手册集群搭建常见问题与解决方案搭建过程中难免遇到各类问题以下是高频问题及实战解决方案覆盖环境配置、启动故障、通信异常等场景。5.1 环境依赖类问题**问题 1启动 Kafka 时提示 “JAVA_HOME is not set and could not be found”**解决方案检查 JAVA_HOME 环境变量配置是否正确Linux 需确保 /etc/profile 中的配置已通过 source 生效Windows 需在“系统环境变量”中配置而非“用户环境变量”配置后重启 cmd 窗口。**问题 2JDK 版本过高导致 Kafka 启动失败如 JDK 11 报错**解决方案Kafka 对 JDK 11 兼容性尚不完善卸载高版本 JDK安装 JDK 1.8 版本重新配置环境变量。5.2 ZooKeeper 集群问题**问题 1ZooKeeper 节点启动后状态为 “Error contacting service. It is probably not running.”**解决方案① 检查 zoo.cfg 中 dataDir 和 dataLogDir 目录是否已创建② 验证 myid 文件是否存在且内容与 server.id 一致③ 检查集群节点 IP 和端口是否配置正确确保防火墙未拦截 2181、2888、3888 端口Linux 执行firewall-cmd --add-port2181/tcp --permanent开放端口。问题 2ZooKeeper 集群无法选举出 Leader所有节点均为 Follower解决方案① 确保集群节点数为奇数最少 3 个② 检查各节点 myid 文件内容唯一且与 zoo.cfg 中 server 配置对应③ 查看日志dataLogDir 下排查是否存在网络不通或端口占用问题。5.3 Kafka 集群问题**问题 1Kafka 启动后日志提示 “ConnectionRefusedException: Connection refused (Connection refused) to ZooKeeper”**解决方案① 确认 ZooKeeper 集群已正常启动② 检查 server.properties 中 zookeeper.connect 配置是否正确IP、端口、路径是否匹配③ 验证 Kafka 节点与 ZooKeeper 节点网络互通Linux 执行 ping 命令Windows 执行 telnet 或 Test-NetConnection 命令。**问题 2生产者发送消息失败提示 “LeaderNotAvailableException”**解决方案① 检查 Topic 副本数是否大于 Broker 数量default.replication.factor 需 ≤ Broker 数量② 确认 Kafka 集群所有节点已正常启动Leader 节点未故障③ 重新创建 Topic确保分区和副本配置合理。问题 3Windows 环境下 Kafka 启动后 cmd 窗口闪退解决方案① 以管理员身份运行 cmd 窗口② 检查 server.properties 中 log.dirs 目录是否存在且有写入权限③ 在启动命令后添加 pause如kafka-server-start.bat ..\..\config\server.properties pause查看具体报错信息。问题 4跨节点消费消息失败本地节点可正常消费解决方案① 检查 server.properties 中 listeners 和 advertised.listeners 配置是否为节点实际 IP不可用 localhost 或 127.0.0.1否则跨节点无法识别② 开放 Kafka 监听端口Linux 开放 9092 端口Windows 在防火墙中添加端口例外。5.4 性能与稳定性优化建议Linux 环境下关闭防火墙或开放必要端口ZooKeeper 2181、2888、3888Kafka 9092避免网络拦截。生产环境中Kafka 日志目录建议挂载独立磁盘避免与系统盘竞争 I/O 资源。根据业务需求调整 log.retention.hours 和 log.segment.bytes避免日志文件过大占用存储空间。设置 Kafka 启动脚本为系统服务Linux 可通过 systemd 配置Windows 可通过服务管理器实现开机自启。定期清理 Kafka 过期日志可通过 log.retention.check.interval.ms 配置日志检查间隔。六、总结Kafka 集群搭建的核心在于理清 ZooKeeper 与 Kafka 的依赖关系确保各节点配置一致且唯一同时规避网络、权限、版本兼容等常见问题。Linux 环境需注重服务启停管理和权限配置Windows 环境则需关注端口占用和目录权限问题。通过本文的步骤指引和避坑手册可快速搭建稳定的 Kafka 集群为后续业务开发和数据流转提供可靠支撑。若在搭建过程中遇到其他问题可通过 Kafka 日志/usr/local/kafka/kafka.log 或 Windows 启动窗口输出定位具体错误信息结合官方文档进一步排查解决。
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

忘记php网站后台密码安装wordpress无反应

Excalidraw在教育领域的创新应用:可视化教学新方式 在高中物理课上讲解“电磁感应”时,教师常常需要画出线圈、磁铁和电流方向的示意图。传统的做法是提前用PPT制作静态图片,或在直播中手忙脚乱地调出绘图工具——结果往往是学生还没理解原理…

张小明 2025/12/21 18:09:17 网站建设

网站免费建站 网页不需要备案网站建设页面设计之后

3.3 实战应用:为数据库查询工具添加更多数据库支持 在前两节课中,我们学习了Claude Code的核心功能和AI Agent的工作原理。本节课我们将通过一个实战项目,为第二周开发的智能数据库查询工具添加更多数据库支持,深入实践Claude Code的Command、Agent和Hook功能。 项目回顾…

张小明 2025/12/21 18:07:01 网站建设

如何在学校网站上做链接做淘宝优惠劵网站服务器配置

终极M3U8下载指南:快速获取视频资源的完整教程 【免费下载链接】M3u8Downloader下载工具 M3u8 Downloader是一款高效、易用的开源下载工具,专为M3u8格式文件设计。经过优化,它能够快速获取并下载最新、最完整的资源,即使是大型文件…

张小明 2025/12/21 18:04:55 网站建设

济南网站建设咨 询小七极速网站建设

在移动应用开发领域,蓝牙低功耗技术已成为连接智能设备的桥梁。Nordic Semiconductor推出的Android-BLE-Library彻底革新了传统BLE开发模式,让开发者能够以优雅的方式构建稳定可靠的蓝牙应用。本文将从实战角度出发,深度解析如何利用该库打造…

张小明 2025/12/25 19:04:03 网站建设

网上商城网站建设方案wordpress首页不显示该分类下文章

Excalidraw 自定义组件库搭建指南 在技术团队频繁进行架构讨论、产品原型设计和系统建模的今天,一张清晰、一致且易于修改的示意图,往往比千言万语更有效。然而现实是:每次画“微服务数据库网关”的组合图都要从头开始?不同成员画…

张小明 2025/12/21 18:00:51 网站建设

湖南省建设工程造价管理站网站wordpress添加单页

USTC本科论文参考文献格式重大调整:期刊名斜体取消指南 【免费下载链接】ustcthesis LaTeX template for USTC thesis 项目地址: https://gitcode.com/gh_mirrors/us/ustcthesis 中国科学技术大学LaTeX论文模板ustcthesis针对本科论文参考文献格式进行了重要…

张小明 2025/12/21 17:58:46 网站建设