首页主机资讯CentOS Java微服务如何搭建

CentOS Java微服务如何搭建

时间2025-12-11 20:27:04发布访客分类主机资讯浏览249
导读:在 CentOS 上搭建 Java 微服务的实操指南 一 环境准备与基础组件 安装 JDK 8(OpenJDK):执行命令:sudo yum install -y java-1.8.0-openjdk-devel,验证:java -ver...

在 CentOS 上搭建 Java 微服务的实操指南

一 环境准备与基础组件

  • 安装 JDK 8(OpenJDK):执行命令:sudo yum install -y java-1.8.0-openjdk-devel,验证:java -versionjavac -version。如使用 Oracle JDK,需自行下载并设置 JAVA_HOME
  • 创建运行用户与应用目录:建议非 root 部署,创建用户 javaapp,目录结构如 /home/javaapp/soft(安装包)、/home/javaapp/app(微服务 JAR)、/home/javaapp/app/logs(日志)。
  • 基础中间件按需安装:如 Redis 6.x(缓存/会话)、MySQL 5.7(业务库)、Zookeeper 3.4.x(Dubbo 注册中心)、或 Tomcat 9(War 部署/传统场景)。示例:Redis 编译安装、配置后台运行与 systemd 单元;Zookeeper 下载解压、复制并重命名 zoo_sample.cfgzoo.cfg 后启动。
  • 防火墙放行端口:例如 firewall-cmd --add-port=8080/tcp --permanent & & firewall-cmd --reload(按实际端口调整)。

二 两种常见微服务落地方式

  • 方式 A Spring Boot + Spring Cloud(内嵌容器,JAR 直跑)

    • 构建:使用 Maven/Gradle 打包得到可执行 fat-jar
    • 运行:
      • 前台调试:java -jar app.jar
      • 后台运行:nohup java -jar app.jar > /dev/null 2> & 1 &
      • JVM 建议:-Xms512m -Xmx512m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=128m,并输出 GC 日志便于排查。
    • 配置:外置 application.yml,通过 --spring.config.location=... 指定;多环境用 application-{ profile} .yml
    • 进程与日志:jps 查看 Java 进程;日志建议统一落盘到 /home/javaapp/app/logs/
    • 服务治理:使用 Eureka/Consul/Nacos 做服务发现;网关用 Spring Cloud Gateway/Zuul;配置中心可选 Spring Cloud Config/Nacos
  • 方式 B Spring Boot + Dubbo(RPC 框架)

    • 架构角色:Provider/Consumer/Registry/Monitor/Container
    • 注册中心:安装 Zookeeper(单机或集群),启动后用 ./zkServer.sh status 检查。
    • 工程结构:定义 API 模块(接口与 DTO),Provider 实现并暴露服务,Consumer 引用并调用。
    • 依赖示例(Dubbo 2.7.x + Zookeeper):dubbo-spring-boot-starter:2.7.3 与 Zookeeper 客户端依赖。
    • 部署与验证:Provider/Consumer 分别打包为 JAR 在 CentOS 上运行,观察注册中心与服务调用日志。

三 部署与运维要点

  • 进程管理:优先使用 systemd 托管(示例模板见下节),便于开机自启、日志轮转与统一启停;临时方式可用 nohup ... & 并配合 jpskill
  • 配置与密钥:数据库、MQ、注册中心等敏感信息放入 外部配置KMS/Vault,避免硬编码;不同环境使用独立 profile
  • 日志与监控:规范日志目录与滚动策略(如按天/按大小),接入 Prometheus + Grafana(Micrometer/Spring Boot Actuator),关键业务埋点。
  • 网络与安全:仅开放必要端口;启用 HTTPS/TLS;对外网关做 限流/熔断/鉴权;数据库与中间件使用最小权限账号。

四 最小可用示例命令清单

  • 安装 JDK 8
    • sudo yum install -y java-1.8.0-openjdk-devel
    • java -version & & javac -version
  • 以普通用户部署并后台运行(示例)
    • su - javaapp
    • cd /home/javaapp/app/order-service
    • 前台试跑:java -jar order-service-0.0.1-SNAPSHOT.jar --spring.config.location=./application-prod.yml
    • 后台常驻:nohup java -Xms512m -Xmx512m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=128m -XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:./logs/gc.log -jar order-service-0.0.1-SNAPSHOT.jar --spring.config.location=./application-prod.yml > ./logs/run.log 2> & 1 &
    • 查看进程:jpsps -ef | grep java
  • 停止服务(先查 PID 再 kill)
    • jps 获取进程号 PID
    • kill -9 < PID> (生产建议优雅停机:kill < PID> 或调用 Actuator shutdown)
  • 防火墙放行示例端口
    • firewall-cmd --add-port=8080/tcp --permanent & & firewall-cmd --reload
  • 使用 systemd 托管示例(创建文件:/etc/systemd/system/order-service.service
    • 内容示例:
      [Unit]
      Description=Order Service
      After=network.target
      
      [Service]
      Type=simple
      User=javaapp
      WorkingDirectory=/home/javaapp/app/order-service
      ExecStart=/usr/bin/java -Xms512m -Xmx512m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=128m -jar /home/javaapp/app/order-service/order-service-0.0.1-SNAPSHOT.jar --spring.config.location=./application-prod.yml
      SuccessExitStatus=143
      Restart=on-failure
      StandardOutput=journal
      StandardError=journal
      
      [Install]
      WantedBy=multi-user.target
      
    • 启用与启动:
      • sudo systemctl daemon-reload
      • sudo systemctl enable --now order-service
      • sudo systemctl status order-service
      • 查看日志:journalctl -u order-service -f

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: CentOS Java微服务如何搭建
本文地址: https://pptw.com/jishu/769744.html
CentOS Java测试如何编写 centos dhcp如何升级

游客 回复需填写必要信息