CentOS 7下Java技术栈环境搭建与配置指南
1. 环境准备与基础组件安装在搭建这套技术栈之前我们需要先准备好基础环境。我选择CentOS 7作为操作系统平台因为它兼具稳定性和广泛的社区支持。以下是基础组件的安装步骤1.1 JDK安装与配置Java环境是整个技术栈的基础这里我选择JDK 8u271版本。安装过程需要注意几个关键点#!/bin/bash # 检查安装包是否存在 [ ! -f jdk-8u271-linux-x64.tar.gz ] echo JDK安装包不存在 exit # 解压并移动到标准目录 tar xf jdk-8u271-linux-x64.tar.gz mv jdk1.8.0_271 /usr/local/java # 设置环境变量 cat /etc/profile.d/java.sh EOF export JAVA_HOME/usr/local/java export PATH\$JAVA_HOME/bin:\$PATH EOF # 立即生效 source /etc/profile.d/java.sh java -version注意环境变量配置在/etc/profile.d/下比直接修改/etc/profile更规范便于维护和隔离不同组件的配置。1.2 Maven安装与配置Maven 3.5.4版本足够稳定适合大多数项目wget https://mirrors.bfsu.edu.cn/apache/maven/maven-3/3.5.4/binaries/apache-maven-3.5.4-bin.tar.gz tar xf apache-maven-3.5.4-bin.tar.gz mv apache-maven-3.5.4 /usr/local/maven3.5 cat /etc/profile.d/maven.sh EOF export MAVEN_HOME/usr/local/maven3.5 export PATH\$MAVEN_HOME/bin:\$PATH EOF source /etc/profile.d/maven.sh mvn -v在实际操作中我发现国内使用镜像源能显著提高依赖下载速度。可以在~/.m2/settings.xml中配置阿里云镜像mirror idaliyunmaven/id mirrorOf*/mirrorOf name阿里云公共仓库/name urlhttps://maven.aliyun.com/repository/public/url /mirror2. 数据库与中间件安装2.1 MongoDB安装与安全配置MongoDB 4.0.21版本在稳定性和功能之间取得了良好平衡。安装时特别注意安全配置#!/bin/bash PORT27017 Useradmin Passwdyour_strong_password wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel62-4.0.21.tgz tar -zxvf mongodb-linux-x86_64-rhel62-4.0.21.tgz mv mongodb-linux-x86_64-rhel62-4.0.21/ /usr/local/mongodb mkdir -p /usr/local/mongodb/{data,logs} touch /usr/local/mongodb/logs/mongo.log # 环境变量配置 cat /etc/profile.d/mongodb.sh EOF export MONGODB_HOME/usr/local/mongodb export PATH\$PATH:\$MONGODB_HOME/bin EOF source /etc/profile.d/mongodb.sh # 配置文件 cat /usr/local/mongodb/mongo.conf EOF dbpath/usr/local/mongodb/data logpath/usr/local/mongodb/logs/mongo.log logappendtrue journaltrue quiettrue port$PORT forktrue bind_ip0.0.0.0 authtrue EOF # Systemd服务配置 cat /usr/lib/systemd/system/mongodb.service EOF [Unit] Descriptionmongodb Afternetwork.target remote-fs.target nss-lookup.target [Service] Typeforking ExecStart/usr/local/mongodb/bin/mongod --config /usr/local/mongodb/mongo.conf ExecReload/bin/kill -s HUP \$MAINPID ExecStop/usr/local/mongodb/bin/mongod --shutdown --config /usr/local/mongodb/mongo.conf PrivateTmptrue Restartalways RestartSec1 [Install] WantedBymulti-user.target EOF systemctl daemon-reload systemctl enable --now mongodb # 创建管理员账户 mongo --port $PORT admin --eval db.createUser({user:$User,pwd:$Passwd,roles:[userAdminAnyDatabase,root]})安全提示生产环境务必修改默认端口启用auth并设置复杂密码。bind_ip不要使用0.0.0.0应该限制为必要IP。2.2 Zookeeper集群部署Zookeeper 3.6.1版本对Kafka 2.6.0有良好支持。单节点部署如下#!/bin/bash HostIP$(hostname -I |awk {print $1}) [ ! -f apache-zookeeper-3.6.1-bin.tar.gz ] echo Zookeeper安装包缺失 exit tar -zxf apache-zookeeper-3.6.1-bin.tar.gz mv apache-zookeeper-3.6.1-bin /usr/local/zookeeper mkdir -p /usr/local/zookeeper/{data,datalog} # 配置文件修改 cd /usr/local/zookeeper/conf cp zoo_sample.cfg zoo.cfg sed -i s#dataDir/tmp/zookeeper#dataDir/usr/local/zookeeper/data# zoo.cfg echo dataLogDir/usr/local/zookeeper/datalog zoo.cfg echo server.1$HostIP:2888:3888 zoo.cfg echo 1 /usr/local/zookeeper/data/myid # 环境变量 cat /etc/profile.d/zookeeper.sh EOF export ZK_HOME/usr/local/zookeeper export PATH\$ZK_HOME/bin:\$PATH EOF source /etc/profile.d/zookeeper.sh # Systemd服务 cat /usr/lib/systemd/system/zookeeper.service EOF [Unit] Descriptionzookeeper.service Afternetwork.target ConditionPathExists/usr/local/zookeeper/conf/zoo.cfg [Service] Typeforking EnvironmentPATH/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/java/bin Userroot Grouproot ExecStart/usr/local/zookeeper/bin/zkServer.sh start ExecStop/usr/local/zookeeper/bin/zkServer.sh stop [Install] WantedBymulti-user.target EOF systemctl daemon-reload systemctl enable --now zookeeper集群部署时需要在所有节点上配置相同的zoo.cfg包含所有server条目每个节点的myid文件内容要唯一1,2,3...防火墙开放2888和3888端口3. Kafka集群部署与管理3.1 Kafka核心安装Kafka 2.6.0版本与前述组件版本匹配良好#!/bin/bash HostIP$(hostname -I |awk {print $1}) PORT9092 [ ! -f kafka_2.13-2.6.0.tgz ] echo Kafka安装包缺失 exit tar -zxf kafka_2.13-2.6.0.tgz mv kafka_2.13-2.6.0 /usr/local/kafka mkdir -p /usr/local/kafka/kafka-logs # 配置文件调整 cd /usr/local/kafka/config cp server.properties server.properties.bak sed -i s#broker.id0#broker.id1# server.properties sed -i s#log.dirs/tmp/kafka-logs#log.dirs/usr/local/kafka/kafka-logs# server.properties echo listenersPLAINTEXT://:$PORT server.properties echo advertised.listenersPLAINTEXT://$HostIP:$PORT server.properties # 环境变量 cat /etc/profile.d/kafka.sh EOF export KAFKA_HOME/usr/local/kafka export PATH\$KAFKA_HOME/bin:\$PATH EOF source /etc/profile.d/kafka.sh # Systemd服务 cat /usr/lib/systemd/system/kafka.service EOF [Unit] DescriptionApache Kafka server (broker) Afternetwork.target zookeeper.service [Service] Typesimple EnvironmentPATH/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/java/bin Userroot Grouproot ExecStart/usr/local/kafka/bin/kafka-server-start.sh /usr/local/kafka/config/server.properties ExecStop/usr/local/kafka/bin/kafka-server-stop.sh [Install] WantedBymulti-user.target EOF systemctl daemon-reload systemctl enable --now kafka关键配置说明broker.id集群中必须唯一log.dirs建议使用高性能磁盘单独挂载listeners/advertised.listeners内外网访问配置zookeeper.connect集群模式下配置所有ZK节点3.2 Kafka基础操作创建topickafka-topics.sh --create --zookeeper localhost:2181 \ --replication-factor 1 --partitions 3 --topic test生产消息kafka-console-producer.sh --broker-list localhost:9092 --topic test消费消息kafka-console-consumer.sh --bootstrap-server localhost:9092 \ --topic test --from-beginning查看topic列表kafka-topics.sh --list --zookeeper localhost:21814. Kafka-Manager可视化监控4.1 安装与配置Kafka-Manager 2.0.0.2提供了友好的Web界面#!/bin/bash [ ! -f kafka-manager-2.0.0.2.zip ] echo Kafka-Manager安装包缺失 exit unzip kafka-manager-2.0.0.2.zip mv kafka-manager-2.0.0.2 /usr/local/kafka-manager # 修改配置 cd /usr/local/kafka-manager/conf sed -i s#kafka-manager-zookeeper:2181#localhost:2181# application.conf # 启动 nohup /usr/local/kafka-manager/bin/kafka-manager \ -Dconfig.file/usr/local/kafka-manager/conf/application.conf \ -Dhttp.port8090 -java-home /usr/local/java 4.2 使用技巧集群添加通过Web界面添加集群时填写正确的ZK地址和Kafka版本监控指标关注Under Replicated Partitions和Offline Partitions Count消费者监控可以查看消费滞后情况主题操作支持创建、删除、扩分区等操作生产环境建议启用basicAuthentication.enabledtrue并配置强密码5. 系统集成与优化5.1 组件连通性验证验证ZK与Kafka连接echo stat | nc localhost 2181 | grep Mode kafka-topics.sh --list --zookeeper localhost:2181验证MongoDB连接mongo --host localhost --port 27017 -u admin -p your_password --authenticationDatabase admin验证Kafka-Manager 访问http://your-server-ip:80905.2 性能优化建议Kafka优化调整num.io.threads和num.network.threads优化log.retention.hours和log.segment.bytes考虑使用SSD存储日志MongoDB优化配置WiredTiger缓存大小建立合适的索引启用journaling系统层面调整文件描述符限制优化swap和内存配置考虑使用cgroup限制资源5.3 常见问题排查Kafka启动失败检查ZK连接验证broker.id唯一性查看日志/usr/local/kafka/logs/server.log生产者无法发送消息检查advertised.listeners配置验证防火墙设置检查topic是否存在MongoDB连接问题检查auth是否启用验证bind_ip配置查看/usr/local/mongodb/logs/mongo.log这套技术栈整合了消息队列、分布式协调和文档数据库非常适合构建现代分布式系统。在实际部署中根据业务规模合理规划集群节点数量和资源配置是关键。

相关新闻

KVM虚拟化技术解析与生产环境实践指南

KVM虚拟化技术解析与生产环境实践指南

1. KVM虚拟化技术基础解析KVM(Kernel-based Virtual Machine)作为Linux内核原生支持的虚拟化解决方案,其技术架构与传统Type-2虚拟化有着本质区别。不同于VMware Workstation等运行在操作系统之上的虚拟化方案,KVM直接将Linux内核…

2026/10/17 9:27:07 阅读更多 →
华为Mate90 16:10屏幕技术解析与用户体验

华为Mate90 16:10屏幕技术解析与用户体验

1. 华为Mate90屏幕技术突破解析 当华为Mate90采用16:10屏幕比例的消息传出时,整个移动设备行业都为之一震。这种看似微小的比例调整,背后却蕴含着对用户体验的深度思考和技术积累。16:10这个"非主流"比例在笔记本领域早已证明其价值&#xff0…

2026/10/19 3:21:19 阅读更多 →
读懂AI智能体下半场:从“懂行业”到“稳执行”的五层能力栈

读懂AI智能体下半场:从“懂行业”到“稳执行”的五层能力栈

什么是智能体?云厂商把模型、知识库和工作流装进一套开发平台;行业软件公司让智能体进入财务、金融和企业管理系统;一些垂直应用厂商直接瞄准营销、客服、风控等具体业务;还有一批从RPA和流程自动化走出来的公司,试图解…

2026/10/15 3:26:51 阅读更多 →

最新新闻

PyTorch实战:猫狗图像分类从入门到部署

PyTorch实战:猫狗图像分类从入门到部署

1. 为什么猫狗分类是入门深度学习的“试金石”如果你刚接触深度学习,想找一个既能跑通完整流程、又不会一上来就被复杂工程劝退的项目,猫狗图像分类几乎是公认的最佳起点。它不像手写数字识别那样过于简单,也不像目标检测或图像分割那样涉及大…

2026/10/19 4:30:46 阅读更多 →
AI写作工具怎么选?六大平台榜单与智能改写实操指南

AI写作工具怎么选?六大平台榜单与智能改写实操指南

1. 榜单背后的真实需求:科研写作的四个坎先说我自己的感受:做科研的人,最难受的往往不是实验设计,也不是数据分析,而是“把话说清楚”。开题报告要讲逻辑,文献综述要讲立场,正文要讲证据&#x…

2026/10/19 4:30:46 阅读更多 →
逆向Lua 5.1字节码:luadec51反编译实战与二次开发

逆向Lua 5.1字节码:luadec51反编译实战与二次开发

简介:luadec51 是一款面向 Lua 5.1.x 的 Lua 反编译器,基于 Hisham Muhammad 的 luadec(针对 Lua 5.0.x)发展而来,采用与原版相同的免费许可证。它适合需要逆向分析 Lua 字节码、研究虚拟机指令或恢复丢失源码的开发者…

2026/10/19 4:30:46 阅读更多 →
open-code-review:从形式化到高效落地的Code Review实践指南

open-code-review:从形式化到高效落地的Code Review实践指南

1. 代码审查这件事,为什么这么多团队做不好代码审查(Code Review)在国内开发团队里是个挺微妙的话题。你说它不重要,几乎所有团队都认同它重要;你说它在认真做,真正能把 Review 做出价值的团队少之又少。很…

2026/10/19 4:30:46 阅读更多 →
开源代码审查工具 open-code-review 实战:从 Git diff 到规则引擎

开源代码审查工具 open-code-review 实战:从 Git diff 到规则引擎

1. 先搞清楚 open-code-review 到底解决什么问题1.1 从“人肉 review”的痛点说起做过一段时间小组负责人的朋友应该都有这种感觉:代码审查(Code Review)这件事,听着简单,做起来却特别消耗人。日常开发里最典型的一个场…

2026/10/19 4:30:46 阅读更多 →
智能座舱语音交互核心技术术语解析:从ASR到TTS的完整链路

智能座舱语音交互核心技术术语解析:从ASR到TTS的完整链路

智能座舱的发布会上,“语音交互”这几个字被反复提及,但真正看参数页和产品通稿时,满屏的ASR、NLU、AEC、TTS、唤醒率、误唤醒、全双工、可见即可说,说实话我刚接触那会儿也一头雾水。车载语音交互和手机上的语音助手完全是两码事…

2026/10/19 4:29:45 阅读更多 →

日新闻

频率跟踪型PWM电源设计:臭氧发生器谐振点漂移与软开关实现

频率跟踪型PWM电源设计:臭氧发生器谐振点漂移与软开关实现

简介:本资源为电源技术方向的学术研究文档,聚焦介质阻挡放电型臭氧发生器电源的频率跟踪型PWM控制策略,面向电力电子、高压电源及臭氧应用领域的科研人员与工程技术人员。针对负载呈容性、等效电容随外加电压升高而增大、谐振频率随之漂移的难…

2026/10/19 0:00:47 阅读更多 →
Vibe Coding 遇上 TaoToken:把开发者思维圣殿的灵感流接入统一 Key 通道

Vibe Coding 遇上 TaoToken:把开发者思维圣殿的灵感流接入统一 Key 通道

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/19 0:00:47 阅读更多 →
HundredCV-Chat话题建模实战教程:利用4,871个内置话题标签构建主题分析系统

HundredCV-Chat话题建模实战教程:利用4,871个内置话题标签构建主题分析系统

【免费下载链接】HundredCV-Chat 项目地址: https://ai.gitcode.com/hf_mirrors/Jax-dan/HundredCV-Chat 点击查看 免费下载 HundredCV-Chat 是一个由 100 位青年简历数据开发而来的中文多轮对话数据集,共包含 24,750 组日常闲聊对话和 4,871 个话题标签…

2026/10/19 0:00:47 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/19 1:30:52 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/19 2:54:50 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/17 17:22:31 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 12:16:16 阅读更多 →