先泼盆冷水:“公司自用”和“对外服务”是两码事,而“自用”又分“内部员工用”和“老板自己看”。 配置方案完全取决于你的业务场景、并发量以及团队的技术维护能力。
别一上来就想着上 Kubernetes 或者高可用集群,那是给日活百万级业务准备的。对于大多数中小企业或内部工具,稳定 > 复杂,易维护 > 高性能。
以下分三个层级给出建议,请对号入座:
1. 轻量级/初创期/内部小工具(预算敏感,人员少)
适用场景: OA系统、CRM内部版、数据看板、日访问量 < 500 UV,团队只有1-2个后端。
- 服务器配置:
- CPU: 2核 – 4核
- 内存: 4GB – 8GB
- 带宽: 3Mbps – 5Mbps(如果图片视频多,建议搭配对象存储OSS/COS,不要占带宽)
- 系统盘: 50GB SSD
- 软件栈推荐:
- JDK: OpenJDK 17 或 21(长期支持版本,性能比8好很多,GC压力小)。
- 应用服务器: Spring Boot 内置 Tomcat 即可,无需独立部署 Nginx + Tomcat 分离架构,减少运维复杂度。
- 数据库: MySQL 8.0(单机版),Redis 6+(缓存)。
- 部署方式: Docker Compose 一键拉起。这是性价比最高的方案,方便迁移和备份。
- 核心逻辑: 能用一个容器解决的事,绝不用两个。省下的精力用来写代码或做监控。
2. 标准生产环境/中型业务(追求稳定,有一定并发)
适用场景: 正式对外SaaS产品、日活 1万-5万,有专门的后端开发团队,要求99.9%可用性。
- 服务器配置(分离架构):
- 应用服务器(App Server): 2台负载均衡后的实例,各 4核 8GB。
- 为什么两台?为了做简单的健康检查和高可用。一台挂了,另一台能扛住流量。
- Web/Nginx 服务器: 1台 2核 4GB,负责静态资源托管、反向X_X、SSL卸载。
- 数据库服务器: 1台 4核 16GB 或更高,必须独立部署。严禁与应用同机,防止IO争抢导致雪崩。
- 缓存服务器: 1台 2核 4GB Redis 集群或哨兵模式。
- 应用服务器(App Server): 2台负载均衡后的实例,各 4核 8GB。
- 关键配置细节:
- Nginx: 开启 gzip 压缩,配置 proxy_cache 缓存静态资源。
- JVM 调优: 根据实际压测结果调整
-Xms和-Xmx,建议设为物理内存的 50%-70%,避免 OOM。使用 G1 GC。 - 日志: 接入 ELK 或简单的 Loki + Grafana,不要只在服务器上
tail -f看日志。
- 核心逻辑: 动静分离,计算与存储分离。数据库是瓶颈,优先保障数据库的资源。
3. 高可用/大型业务(容错率极低,预算充足)
适用场景: 核心交易系统、日活 10万+,不能接受任何停机。
- 架构原则: 不要买大机器,要买多台小机器。
- 推荐架构:
- 前端: CDN + WAF(云盾/安全组)。
- 接入层: SLB(负载均衡) + Nginx 集群。
- 应用层: ECS 实例池,自动伸缩(Auto Scaling)。基于 CPU 利用率或 QPS 动态增减节点。
- 数据层:
- MySQL:主从复制 + 读写分离,甚至 MGR 组复制。
- Redis:Cluster 集群模式。
- MQ:RocketMQ/Kafka 削峰填谷。
- 核心逻辑: 单点故障是原罪。任何组件都要有备用方案。
⚠️ 避坑指南(血泪经验)
-
内存不是越大越好,但也不能太小。
- Java 应用吃内存是因为 JVM 堆外内存、直接缓冲区等。如果只给 2GB 内存跑一个微服务集群,必死无疑。
- 黄金法则: 每个 Spring Boot 微服务至少预留 1GB-2GB 内存给 JVM Heap + Metaspace + OS Buffer。
-
带宽是最贵的隐形成本。
- 云服务器带宽价格远高于计算资源。
- 解决方案: 静态资源(JS/CSS/图片/视频)全部上 OSS/COS + CDN。服务器只传 JSON 数据。这样你可以用极低的带宽(如 1-3Mbps)支撑很高的并发。
-
不要忽视备份。
- 配置再高,误删库也是零。
- 开启数据库自动备份策略(每天全备 + binlog实时备份)。
- 定期恢复演练,否则备份文件就是一堆垃圾数据。
-
监控先行。
- 在上线前,务必接入 Prometheus + Grafana 或阿里云/AWS 自带的监控。
- 关注指标:JVM Heap Usage、GC 频率、线程池状态、DB 连接数、慢查询 SQL。
- 没有监控的系统,等于盲人摸象。
-
安全合规底线。
- 关闭不必要的端口(只开 80, 443, 22)。
- 禁止 root 远程登录 SSH。
- 数据库密码不要硬编码在代码里,使用环境变量或配置中心(如 Nacos/Apollo)。
- 如果是X_X/X_X数据,注意加密存储和传输(HTTPS/TLS 1.2+)。
总结建议
- 如果你刚起步: 选 2核4G 或 4核8G 单机,Docker 部署,MySQL 单机。够用就行,快速验证 MVP。
- 如果业务已成型: 拆分应用、数据库、缓存。采用 Nginx 负载均衡 + 多应用节点 + 独立 DB 架构。
- 永远记住: 最好的配置是最匹配当前业务规模的配置。过度设计是初创公司最大的浪费。
云知道CLOUD