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