刘光辉
昨天 bb638871a7fb692d80f1b7a758f991dc0879002c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
spring:
  # redis单机模式
  # 🔴 键位是 spring.data.redis 而非上游的 spring.redis(2026-08-11 收口):Spring Boot 3 起
  # spring.redis.* 整体搬到 spring.data.redis.*。此前留在旧键位仍能连上,是靠依赖树里的
  # spring-boot-properties-migrator 在运行时重映射兜着——那是「迁移期临时依赖」,不该长期承担
  # 运行时职责;而且它对无替代键的 lettuce.pool.* 每次启动刷 4 条 ERROR,淹没真错误。
  # 同时删掉了 lettuce pool 段:本栈连接层是 redisson-spring-boot-starter(3.52.0),
  # 不读 lettuce 配置,连接池走 Redisson 默认(connectionPoolSize=64/minIdle=24 等),
  # 那段配置在新旧键位下都是死的。
  data:
    redis:
      #缓存库编号
      database: 1
      # 坐标走 env(与 PG 的 CUSTOMER_DB_HOST/PORT 同构):默认值 = 交付/本机形态(栈内 cx-redis 容器),
      # 指 CVM 共享实例时在 .env 设 JNPF_REDIS_HOST=YOUR_DB_HOST + 对应客户端口(客户A 16432/客户B 16433,
      # 端口=16431+N 与 PG 15431+N 尾数对齐;密码见 .env.tencent 对应客户段)
      host: ${JNPF_REDIS_HOST:cx-redis}
      port: ${JNPF_REDIS_PORT:6379}
      # 密码走 env(compose x-cx-env 透传,值在 .env);默认值仅本机开发兜底。
      # 交付环境务必在 .env 设强密码——本文件进 git,不许出现真实交付密码。
      password: ${JNPF_REDIS_PASSWORD:jnpf_redis_2026} # 密码为空时,请将本行注释
      timeout: 3000 #超时时间(单位:秒)
 
  # redis集群模式(上游原样保留作对照;启用时同样要挂在 spring.data.redis 下)
  # data:
  #   redis:
  #     cluster:
  #       nodes:
  #         - 192.168.0.225:6380
  #         - 192.168.0.225:6381
  #         - 192.168.0.225:6382
  #         - 192.168.0.225:6383
  #         - 192.168.0.225:6384
  #         - 192.168.0.225:6385
  #     password: 123456 # 密码为空时,请将本行注释
  #     timeout: 3000 # 超时时间(单位:秒)
 
 
  # 数据源  
  datasource:
    # 数据库类型(可选值 MySQL、SQLServer、Oracle、DM、KingbaseES、PostgreSQL,请严格按可选值填写)
    db-type: PostgreSQL
    db-name: jnpf_init
    # 客户坐标:唯一开关,由各环境 .env 提供(docs/adr-multi-customer-db-isolation.md §3)。
    # 引擎库 jnpf_flow 在 docker-compose.yml 里读同一对变量,两库必然同源——
    # 结构上杜绝 2026-08-03「业务库切了引擎库没切」导致 44/49 流程报错的故障。
    # 默认值 cx-postgres:5432 = 交付形态(PG 与业务服务在同一个 compose 栈内)。
    host: ${CUSTOMER_DB_HOST:cx-postgres}
    port: ${CUSTOMER_DB_PORT:5432}
    # 账号密码同样走占位符:每个客户实例的角色密码不同,写死就得每切一个客户
    # 进 Nacos 控制台改一次——那等于把「单一开关」又拆成两处。
    # 值来自各环境 .env 的 JNPF_APP_DB_USER / JNPF_APP_DB_PASSWORD,由 compose 透传进容器。
    username: ${JNPF_APP_DB_USER:jnpf_app}
    password: ${JNPF_APP_DB_PASSWORD:jnpf_app_2026}
    db-schema: #金仓达梦选填
    prepare-url: #自定义url
    # 表空间(当数据库为Oracle、达梦DM、金仓KingbaseES时表空间必须指定,其他数据库为空即可)
    tablespace: 
    # 多数据源配置
    dynamic:
      seata: false
      # 设置默认的数据源或者数据源组,默认值即为master
      primary: master 
      # 严格匹配数据源,默认false. true未匹配到指定数据源时抛异常,false使用默认数据源
      strict: true 
      druid:
        # 空闲时执行连接测试
        test-while-idle: true
        # 连接测试最小间隔
        time-between-eviction-runs-millis: 60000
        # 获取连接等待3秒 根据网络情况设定
        max-wait: 3000
        # 初始化1个连接(多客户多实例后每实例只有 150 槽,见 adr-multi-customer-db-isolation §5)
        initial-size: 1
        # 最大5个连接(原 10:实测单服务 active 连接恒为 0、纯池空占;一套长跑栈 45→~25 连接)
        max-active: 5
        # 最少保持1个空闲连接(min-idle 是"永远保温"地板,×服务数×环境数即恒占)
        min-idle: 1
        # 空闲连接保活, 超过配置的空闲时间会进行连接检查完成保活操作(数据库自身会断开达到空闲时间的连接, 程序使用断开的连接会报错)
        keep-alive: true
        # 连接超时
        connect-timeout: 10000
        # 连接超时
        socket-timeout: 10000
        # 查询超时
        query-timeout: 90000
        # 事务查询超时
        transaction-query-timeout: 90000
        # 数据库转码
#        proxy-filters: druidEncodingFilter
#        connection-properties:
#          clientEncoding: GB2312
#          serverEncoding: windows-1252
        # 解除注释后Druid连接池打印SQL语句 忽略日志等级配置
        #filters: slf4j
        slf4j:
          statementLogEnabled: true
          resultSetLogEnabled: false
          connectionLogEnabled: false
          dataSourceLogEnabled: false
          statementCreateAfterLogEnabled: false
          statementCloseAfterLogEnabled: false
          statementExecuteAfterLogEnabled: false
          #打印SQL替换参数
          statementExecutableSqlLogEnable: true
          statementPrepareAfterLogEnabled: false
          statementPrepareCallAfterLogEnabled: false
          statementParameterSetLogEnabled: false
#      datasource:
#         # 额外的数据源 Service类中使用DS动态切换
#        SQLSERVER11:
#          url: jdbc:mysql://192.168.0.30:3306/jnpf_project?useUnicode=true&characterEncoding=utf-8&useSSL=false&allowMultiQueries=true&serverTimezone=GMT%2B8
#          username: jnpf_project
#          password: DsNnnYHscifFDfEZ
#          driver-class-name: com.mysql.cj.jdbc.Driver