简介:本文系统阐述在麒麟操作系统上部署Java服务的完整流程,涵盖环境准备、JDK安装、服务部署及运维优化四大模块,提供可落地的技术方案。
麒麟操作系统(Kylin Linux)作为国内自主可控的桌面与服务器操作系统,当前主流版本包括V10(基于CentOS 7)和V10 SP1(基于CentOS 8)。部署前需确认:
yum provides命令验证glibc、libstdc++等基础库版本针对Java服务特性,需优化以下系统参数:
# 修改/etc/sysctl.confnet.core.somaxconn=65535vm.swappiness=10fs.file-max=6553500# 修改/etc/security/limits.conf* soft nofile 65535* hard nofile 65535* soft nproc 65535* hard nproc 65535
执行sysctl -p和重启服务使配置生效。
麒麟系统官方仓库提供OpenJDK 8/11/17版本,推荐使用yum安装:
# 查询可用版本yum list | grep java-11-openjdk# 安装指定版本yum install -y java-11-openjdk-devel.x86_64# 验证安装java -version
如需使用Oracle JDK,需手动下载并配置:
/usr/local/java目录
echo 'export JAVA_HOME=/usr/local/java/jdk-17.0.8' >> /etc/profileecho 'export PATH=$JAVA_HOME/bin:$PATH' >> /etc/profilesource /etc/profile
使用alternatives工具管理多版本JDK:
alternatives --config java# 选择对应编号切换版本
以Tomcat为例的部署流程:
安装Tomcat 9.0(兼容Java 11+):
yum install -y tomcatsystemctl enable tomcat
配置server.xml:
<Connector port="8080" protocol="HTTP/1.1"connectionTimeout="20000"maxThreads="500"acceptCount="200"redirectPort="8443" />
部署WAR包:
cp app.war /usr/share/tomcat/webapps/systemctl restart tomcat
java -jar -Xms512m -Xmx2048m app.jar# 后台运行nohup java -jar app.jar > app.log 2>&1 &
创建/etc/systemd/system/app.service:
[Unit]Description=Spring Boot ApplicationAfter=syslog.target network.target[Service]User=rootExecStart=/usr/bin/java -jar /path/to/app.jarSuccessExitStatus=143Restart=always[Install]WantedBy=multi-user.target
执行系统服务管理命令:
systemctl daemon-reloadsystemctl start appsystemctl enable app
启动时添加JMX参数:
java -Dcom.sun.management.jmxremote \-Dcom.sun.management.jmxremote.port=9010 \-Dcom.sun.management.jmxremote.ssl=false \-Dcom.sun.management.jmxremote.authenticate=false \-jar app.jar
使用Micrometer暴露指标:
// Spring Boot配置management.metrics.export.prometheus.enabled=true
配置Prometheus的scrape任务:
scrape_configs:- job_name: 'java-app'static_configs:- targets: ['localhost:9010']
麒麟系统默认缺少中文字体,解决方案:
# 安装文泉驿字体yum install -y wqy-zenhei-fonts# Java应用指定字体路径-Djava.awt.fonts=/usr/share/fonts/
当出现UnsatisfiedLinkError时:
file /path/to/lib.so
export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
禁用危险命令:
# 移除rm命令(建议使用trash-cli替代)mv /bin/rm /bin/rm.bak
配置Java安全策略:
// 创建/etc/java-policy/default.policygrant {permission java.security.AllPermission;};
启动时指定策略文件:
java -Djava.security.policy=/etc/java-policy/default.policy -jar app.jar
定期更新系统:
yum update -y
本文提供的部署方案已在麒麟V10 SP1(飞腾2000+处理器)环境验证通过,实际部署时需根据具体业务需求调整JVM参数、线程池配置等关键指标。建议建立完整的CI/CD流水线实现自动化部署,并通过Ansible等工具实现批量管理。