部署与运维
了解如何将 JSaas 基座及模块部署到生产环境,以及日常运维中的监控与故障处理。
部署指南
JSaas 支持多种部署方式,可根据团队规模和基础设施条件灵活选择:
Docker Compose(推荐)
适合中小规模部署,一条命令即可启动所有服务。
version: '3.8'
services:
JSaas-base:
image: jsaas/base-platform:2.0
ports:
- "8080:8080"
environment:
- SPRING_PROFILES_ACTIVE=prod
depends_on:
- mysql
- redis
mysql:
image: mysql:8.0
environment:
MYSQL_ROOT_PASSWORD: ${DB_PASSWORD}
MYSQL_DATABASE: jsaas
volumes:
- mysql_data:/var/lib/mysql
redis:
image: redis:7-alpine
volumes:
- redis_data:/data
volumes:
mysql_data:
redis_data:Kubernetes
适合大规模生产环境,支持自动扩缩容和滚动更新。
# 使用 Helm 部署
helm repo add jsaas https://charts.jsaas.com
helm install jsaas jsaas/jsaas-stack \
--set replicaCount=3 \
--set mysql.password=${DB_PASSWORD} \
--namespace jsaas --create-namespace传统部署
适用于自有服务器环境,将 JAR 包直接部署到服务器上。 基座和各模块均为标准的 Spring Boot Fat JAR,通过 java -jar 命令启动。
环境配置
生产环境部署时,建议根据实际规模调整以下关键配置参数:
| 配置项 | 推荐值 | 说明 |
|---|---|---|
| JVM 堆内存 | -Xmx2g -Xms2g | 根据并发量调整,建议不低于 2GB |
| Tomcat 线程池 | 200-500 | 根据 QPS 预估,每线程约处理 10 QPS |
| 数据库连接池 | 20-50 | HikariCP 连接池,根据实例数调整 |
| Redis 连接数 | 16-32 | Lettuce 客户端,按需配连接池 |
建议使用外部配置中心(Nacos / Apollo)管理多环境的配置文件,避免将敏感信息硬编码在代码仓库中。
监控告警
JSaas 基座内置了完善的监控和告警体系,支持与 Prometheus + Grafana 集成:
健康检查
基座提供 /actuator/health 端点,可集成到负载均衡器进行存活探测。
Metrics 指标
自动暴露 JVM、HTTP、数据库、租户调用量等核心指标,支持 Prometheus 抓取。
日志采集
支持 ELK / Loki 日志聚合,通过 TraceId 实现全链路追踪与问题定位。
常见问题
Q: 模块启动后报 "租户未找到" 错误?
A: 请确认模块的 application.yml 中 jsaas.base-platform.url 配置正确,且基座平台已正常启动。模块启动时会自动向基座注册租户信息。
Q: 数据库迁移脚本未自动执行?
A: 请检查迁移脚本文件命名是否符合 Flyway 规范:V{version}__{description}.sql。注意版本号之间使用两个下划线分隔。
Q: 生产环境如何平滑升级模块?
A: 通过基座的灰度发布功能,可以先将新版本模块部署到指定租户进行验证, 确认无误后再全量升级。升级过程中基座会自动处理旧版本请求的平滑迁移。