Skip to content

配置说明

本指南介绍 RecordPlatform 的环境变量和配置选项。

配置迁移说明

自 v2.0 起,敏感配置(数据库凭据、Redis、邮件 SMTP、RabbitMQ)已迁移至 Nacos 配置中心。环境变量中仅保留 Nacos 连接信息和安全密钥(JWT_KEY)。完整的配置结构请参阅 Nacos 配置模板

环境变量

复制示例文件并自定义:

bash
cp .env.example .env
vim .env

核心配置

分类变量说明默认值
数据库DB_HOSTMySQL 主机localhost
DB_PORTMySQL 端口3306
DB_NAME数据库名RecordPlatform
DB_USERNAME数据库用户root
DB_PASSWORD数据库密码-
RedisREDIS_HOSTRedis 主机localhost
REDIS_PORTRedis 端口6379
REDIS_PASSWORDRedis 密码-
NacosNACOS_HOSTNacos 服务器localhost
NACOS_USERNAMENacos 用户名nacos
NACOS_PASSWORDNacos 密码nacos
RabbitMQRABBITMQ_ADDRESSESRabbitMQ 地址localhost:5672
RABBITMQ_USERNAMERabbitMQ 用户guest
RABBITMQ_PASSWORDRabbitMQ 密码guest

安全配置

变量说明要求
JWT_KEYJWT 签名密钥 + ID 加密派生至少 32 字符,高熵值

注意: ID_SECURITY_KEY 自 v2.0 起已弃用,ID 加密密钥现在从 JWT_KEY 派生。

存储配置

S3 兼容存储通过 Nacos 配置。基本环境变量:

变量说明
S3_ENDPOINTS3 端点 URL
S3_ACCESS_KEY访问密钥
S3_SECRET_KEY私有密钥

故障域配置通过 Nacos 管理,支持运行时刷新。

区块链配置

变量说明示例
BLOCKCHAIN_ACTIVE激活的链类型local-fisco, bsn-fisco, bsn-besu
FISCO_PEER_ADDRESSFISCO 节点地址127.0.0.1:20200
FISCO_STORAGE_CONTRACTStorage 合约地址0x...
FISCO_SHARING_CONTRACTSharing 合约地址0x...

SSL 配置(生产环境)

变量说明
SERVER_SSL_KEY_STORE密钥库路径
SERVER_SSL_KEY_STORE_PASSWORD密钥库密码
SECURITY_REQUIRE_SSL强制 HTTPS (true/false)
SECURITY_HTTP_REDIRECT_PORTHTTP 重定向端口

服务端口配置

变量说明默认值
SERVER_PORT后端 REST API 端口8000
DUBBO_FISCO_PORTFISCO Dubbo 服务端口8091
DUBBO_STORAGE_PORTStorage Dubbo 服务端口8092
DUBBO_HOST服务注册 IP(用于 Docker 环境)-
QOS_BACKEND_PORTBackend QoS 管理端口22330
QOS_FISCO_PORTFISCO QoS 管理端口22331
QOS_STORAGE_PORTStorage QoS 管理端口22332

注意: DUBBO_HOST 在 Docker 环境中非常重要,确保服务注册使用可访问的 IP 而非 Docker 网桥 IP。

日志配置

变量说明默认值
LOG_LEVEL应用日志级别INFO
LOG_PATH日志文件输出目录/var/log/record-platform

CORS 配置

变量说明示例
CORS_ALLOWED_ORIGINS允许的前端域名(逗号分隔)http://localhost:3000,http://localhost:5173

API 文档配置

变量说明默认值
KNIFE4J_USERNAMEKnife4j/Swagger UI 用户名admin
KNIFE4J_PASSWORDKnife4j/Swagger UI 密码-

APM 配置(可选)

SkyWalking 分布式追踪集成:

变量说明默认值
SW_AGENT_COLLECTOR_BACKEND_SERVICESSkyWalking OAP 收集器localhost:11800
SW_AGENT_NAMESkyWalking 中的服务名record-platform
SW_JDBC_TRACE_SQL_PARAMETERS追踪 SQL 参数true

Profile 配置

可用 Profile: local, dev, prod

bash
# 使用指定 Profile 运行
java -jar app.jar --spring.profiles.active=prod

Profile 差异

特性localdevprod
Swagger UI启用启用禁用
Druid 监控启用启用禁用
Debug 日志启用部分禁用
强制 SSL

Nacos 配置

动态配置通过 Nacos 管理。模板:docs/nacos-config-template.yaml

关键 Nacos 配置

yaml
# 存储节点与故障域配置
storage:
  # 必须配置:活跃域列表
  active-domains:
    - domain-a
    - domain-b

  # 可选:外部访问端点(v3.2.0 新增)
  # 用于生成预签名 URL 时替换内部端点地址,解决跨网段(如 VPN)访问问题
  # 格式:http://host:port(不带尾部斜杠)
  external-endpoint: http://10.1.0.2:9000

  # 可选:备用域(用于故障转移)
  standby-domain: standby

  # 副本策略配置(v3.1.0 新增)
  replication:
    factor: 2                     # 副本数量,默认=活跃域数量
    quorum: auto                  # 仲裁策略: auto|majority|all|具体数字

  # 降级写入配置(v3.1.0 新增)
  degraded-write:
    enabled: true                 # 允许降级写入
    min-replicas: 1               # 降级模式下的最小副本数
    track-for-sync: true          # 记录降级写入以便后续同步

  virtualNodesPerNode: 150

  # 可选:域详细配置
  domains:
    - name: domain-a
      minNodes: 1
      acceptsWrites: true
    - name: domain-b
      minNodes: 1
      acceptsWrites: true
    - name: standby
      minNodes: 0
      acceptsWrites: false

  nodes:
    - name: node-a1
      endpoint: http://minio-a:9000
      faultDomain: domain-a
      weight: 100
    - name: node-b1
      endpoint: http://minio-b:9000
      faultDomain: domain-b
      weight: 100

  # 副本一致性修复配置
  consistency:
    repair:
      enabled: true               # 是否启用定时修复
      cron: "0 */15 * * * ?"      # 每 15 分钟执行
      batch-size: 100
      lock-timeout-seconds: 600

  # 数据再平衡配置
  rebalance:
    enabled: true                 # 是否启用自动再平衡
    rate-limit-per-second: 10     # 每秒最大复制对象数
    cleanup-source: false         # 再平衡后是否删除源数据

注意: active-domains 为必填项,启动时会校验。单域开发模式只需配置一个域名。

定时任务配置

分享清理

自动将过期分享标记为无效:

yaml
share:
  cleanup:
    interval: 300000  # 每 5 分钟检查一次(毫秒)

使用分布式锁防止多实例部署时重复执行。

文件清理

清理保留期满后的软删除文件:

yaml
file:
  cleanup:
    retention-days: 30      # 软删除文件保留天数
    batch-size: 100         # 每批处理文件数
    cron: "0 0 3 * * ?"     # 每天凌晨 3 点执行

前端配置

前端环境变量 (platform-frontend/.env):

变量说明
PUBLIC_API_BASE_URL后端 API 地址
PUBLIC_ENV环境名称
PUBLIC_TENANT_ID默认租户 ID

Released under the Apache 2.0 License.