Spring Boot 服务器的配置要求取决于具体的应用场景(如流量、功能复杂度、数据量等),以下是一个通用的配置建议和关键考虑因素:
1. 最低配置(开发/测试环境)
- CPU: 1-2 核
- 内存: 2-4 GB
- 磁盘: 20-50 GB(SSD 更好)
- 操作系统: Linux(推荐)或 Windows
- Java 版本: JDK 11 或 17(LTS 版本)
适用场景:本地开发、小型测试环境、低并发演示应用。
2. 生产环境推荐配置
中小型应用(日活 < 1万)
- CPU: 2-4 核
- 内存: 4-8 GB
- 磁盘: 50-100 GB SSD(根据日志和数据库需求调整)
- 网络带宽: 5-10 Mbps
中大型应用(高并发/微服务)
- CPU: 4-8 核(或横向扩展多实例)
- 内存: 8-16 GB(或更高,根据 JVM 堆配置调整)
- 磁盘: 100 GB+ SSD(考虑独立数据库服务器)
- 网络带宽: 50 Mbps+(或使用 CDN)
3. 关键配置因素
(1) JVM 参数优化
- 默认情况下,Spring Boot 的 JVM 堆内存占用约为应用启动内存的 50%-75%。
- 建议通过
-Xms和-Xmx明确设置堆大小(例如-Xms512m -Xmx2g)。 - 示例启动命令:
java -Xmx2g -Xms512m -jar your-application.jar
(2) 线程与并发
- Tomcat 默认线程池(适用于嵌入式服务器):
server.tomcat.threads.max=200 # 根据并发请求调整 server.tomcat.max-connections=10000 - 高并发场景建议结合 Nginx 负载均衡或使用 Reactive Web(WebFlux)。
(3) 数据库连接池
- 如使用 HikariCP(Spring Boot 默认):
spring.datasource.hikari.maximum-pool-size=20 # 根据数据库性能调整
(4) 日志与监控
- 预留磁盘空间存储日志(如 Logback 或 Log4j2 滚动日志)。
- 集成监控工具(如 Prometheus + Grafana)时需额外资源。
4. 云部署建议
- 容器化(Docker/K8s):
- 限制容器资源:
docker run -m 2g --cpus=2 - 使用轻量级基础镜像(如
eclipse-temurin:17-jre)。
- 限制容器资源:
- 云服务商参考:
- AWS: t3.medium(2 vCPU, 4 GB)
- 阿里云: ecs.g6.large(2 vCPU, 8 GB)
5. 性能调优方向
- 减少 JAR 包体积:排除无用依赖,使用
spring-boot-thin-launcher。 - 缓存:集成 Redis 或 Caffeine 减轻数据库压力。
- 静态资源分离:通过 CDN 或 Nginx 托管静态文件。
- GC 优化:针对高吞吐量或低延迟选择 G1/CMS/ZGC。
总结
- 开发环境:2C4GB 足够。
- 生产环境:从 2C4GB 起步,通过压测(如 JMeter)逐步调整。
- 微服务架构:优先考虑横向扩展(多实例 + 负载均衡)。
根据实际业务需求动态调整配置,并持续监控资源使用情况(如 CPU、内存、GC 日志)。
云服务器