跳转至

Java 与 Spring:运维视角

本分类不以 Java 语言开发为主,而是回答运维交付中的实际问题:应用需要哪个 Java 版本、JAR 怎样启动、镜像怎样制作、Spring 配置怎样从外部注入、日志去哪看,以及 CPU、内存、线程、连接池和启动失败时如何取证。

开发交付 JAR
  → 确认 Java / Spring Boot 兼容关系
  → 制作不可变运行镜像
  → 外挂环境配置与 Secret
  → 设置 JVM、资源限制和健康检查
  → 收集日志、指标、线程栈、Heap Dump / JFR
  → 定位应用、JVM、容器或外部依赖问题

内容结构

运行参数先读 JVM 核心参数与系统影响,理解内存预算、GC 与 CPU 的取舍,再进入故障取证。

运维接收应用时至少确认

项目 必须得到的信息
制品 JAR 名称、校验值、版本/提交 SHA、启动方式
运行环境 Java 主版本、CPU 架构、时区、字符集、所需字体/系统库
配置 默认配置、外部配置目录、Profile、必填变量、Secret 来源
资源 推荐的内存/CPU、JVM 参数、临时目录、磁盘增长点
端口 HTTP、管理端口、调试端口以及是否只能内网访问
依赖 数据库、Redis、Kafka、外部 API、DNS 与证书要求
健康检查 启动、就绪、存活判断方式及正常响应
排障能力 日志位置、Actuator、GC 日志、线程栈与 Heap Dump 获取方式

只有“JAR 能启动”不代表交付完成。必须验证重启、配置覆盖、依赖不可用、日志轮转、健康检查、资源限制和故障取证。

服务拆分、通信、容错和数据一致性的通用原则统一放在 微服务,这里仅补充 Java/Spring 的具体运行实现。