部署与运维

了解如何将 JSaas 基座及模块部署到生产环境,以及日常运维中的监控与故障处理。

部署指南

JSaas 支持多种部署方式,可根据团队规模和基础设施条件灵活选择:

Docker Compose(推荐)

适合中小规模部署,一条命令即可启动所有服务。

yaml
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

适合大规模生产环境,支持自动扩缩容和滚动更新。

bash
# 使用 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-50HikariCP 连接池,根据实例数调整
Redis 连接数16-32Lettuce 客户端,按需配连接池

建议使用外部配置中心(Nacos / Apollo)管理多环境的配置文件,避免将敏感信息硬编码在代码仓库中。

监控告警

JSaas 基座内置了完善的监控和告警体系,支持与 Prometheus + Grafana 集成:

1

健康检查

基座提供 /actuator/health 端点,可集成到负载均衡器进行存活探测。

2

Metrics 指标

自动暴露 JVM、HTTP、数据库、租户调用量等核心指标,支持 Prometheus 抓取。

3

日志采集

支持 ELK / Loki 日志聚合,通过 TraceId 实现全链路追踪与问题定位。

常见问题

Q: 模块启动后报 "租户未找到" 错误?

A: 请确认模块的 application.yml jsaas.base-platform.url 配置正确,且基座平台已正常启动。模块启动时会自动向基座注册租户信息。

Q: 数据库迁移脚本未自动执行?

A: 请检查迁移脚本文件命名是否符合 Flyway 规范:V{version}__{description}.sql。注意版本号之间使用两个下划线分隔。

Q: 生产环境如何平滑升级模块?

A: 通过基座的灰度发布功能,可以先将新版本模块部署到指定租户进行验证, 确认无误后再全量升级。升级过程中基座会自动处理旧版本请求的平滑迁移。