在企业级Java项目中,服务器配置的选择取决于应用规模、性能需求、高可用性要求及预算等因素。以下是一个全面的配置指南,涵盖常见场景和优化建议:
1. 硬件配置参考
中小型应用(日活 < 10万)
- CPU:4~8核(如Intel Xeon Silver或AMD EPYC)
- 内存:16~32GB(JVM堆内存建议分配总内存的50%~70%)
- 存储:SSD 200~500GB(RAID 10保障冗余)
- 网络:1Gbps带宽
大型高并发应用(日活 > 100万)
- CPU:16~32核(多线程优化)
- 内存:64~128GB(考虑堆外内存使用,如Netty、缓存)
- 存储:NVMe SSD 1TB+(高IOPS需求)
- 网络:10Gbps带宽(需支持TCP优化)
2. 云服务器推荐(以主流云厂商为例)
| 厂商 | 实例类型 | 适用场景 |
|---|---|---|
| AWS | m6i.xlarge (4vCPU, 16GB) | 通用Web应用 |
| AWS | r6g.2xlarge (8vCPU, 64GB) | 内存密集型(如Redis、大数据) |
| 阿里云 | ecs.g7ne.4xlarge (16vCPU) | 高网络包量(如电商秒杀) |
| 腾讯云 | S5.16XLARGE (64GB) | 企业级ERP系统 |
3. JVM优化关键参数
# 示例:G1 GC配置(JDK 11+)
java -Xms12G -Xmx12G
-XX:+UseG1GC
-XX:MaxGCPauseMillis=200
-XX:ParallelGCThreads=4
-XX:ConcGCThreads=2
-jar your-app.jar
- 关键参数:
-Xmx/-Xms:堆内存设为相同值避免动态扩容。-XX:MaxMetaspaceSize:控制元空间(默认无限制)。-XX:+HeapDumpOnOutOfMemoryError:OOM时自动转储堆快照。
4. 中间件服务器配置
Tomcat优化
<!-- conf/server.xml -->
<Connector port="8080"
maxThreads="200"
minSpareThreads="20"
acceptCount="100"
compression="on"/>
- 线程池:
maxThreads建议为(CPU核心数 * 200)。
Spring Boot内嵌容器
# application.yml
server:
tomcat:
threads:
max: 200
min-spare: 20
accept-count: 100
connection-timeout: 5000
5. 高可用架构建议
- 负载均衡:Nginx(加权轮询)或AWS ALB。
- 集群部署:至少2节点+VIP(如Keepalived)。
- 容器化:Kubernetes + Docker(资源隔离,自动扩缩容)。
6. 监控与调优工具
- APM:SkyWalking、New Relic(追踪JVM性能)。
- 日志:ELK Stack(集中日志分析)。
- JVM诊断:Arthas(在线排查问题)。
7. 安全配置
- 防火墙:限制仅开放必要端口(如443/80/22)。
- 证书:TLS 1.2+(通过Let’s Encrypt或企业CA)。
- 定期漏洞扫描:使用Nessus或OpenVAS。
8. 成本优化技巧
- 云服务器:预留实例节省30%~50%费用。
- 混合部署:核心服务用物理机,边缘业务用云。
- 自动扩缩容:基于CPU利用率触发(如AWS Auto Scaling)。
企业实际配置需结合压测结果(如JMeter)持续调整。建议从中等配置起步,通过监控数据逐步优化。
云服务器