Log DB 配置说明
1. 配置参数一览(log-db 节点)
log-db:
enabled: ${LOG_DB_ENABLED:false} # 是否启用 Log DB 存储
driver-class-name: ${LOG_DB_DRIVER_CLASS_NAME:org.postgresql.Driver}
jdbc-url: ${LOG_DB_URL:jdbc:postgresql://127.0.0.1:5432/log_db?currentSchema=log_db}
username: ${LOG_DB_USER:postgres}
password: ${LOG_DB_PASSWORD:postgres} # 后续建议改为从 Vault 读取
maximum-pool-size: ${LOG_DB_MAXIMUM_POOL_SIZE:20}
minimum-idle: ${LOG_DB_MAXIMUM_IDLE:2} # 注意:键名可能应为 minimum-idle
idle-timeout: ${LOG_DB_IDLE_TIMEOUT:600000} # ms
connection-timeout: ${LOG_DB_CONNECTION_TIMEOUT:30000} # ms
max-lifetime: ${LOG_DB_MAXIMUM_LIFETIME:1800000} # ms
longest-update-timeout: ${LOG_DB_LONG_UPDATE_TIMEOUT:3000} # ms,最长更新超时
async-write-enabled: ${LOG_DB_ASYNC_WRITE_ENABLED:false} # 是否异步写入日志
executor:
core-pool-size: ${LOG_DB_EXECUTOR_CORE_POOL_SIZE:10} # 异步写线程池核心数
max-pool-size: ${LOG_DB_EXECUTOR_MAX_POOL_SIZE:20} # 异步写线程池最大数
2. 重要配置参数详解
| 配置项 | 默认值 | 说明 | 建议/注意事项 |
|---|---|---|---|
| LOG_DB_ENABLED | false | 是否开启 Log DB 持久化功能。 开启后会将内存中的以下数据写入 log_db: • flow_instance • job_instance_history • job_instance • action_log | 生产环境建议开启 |
| LOG_DB_URL | - | PostgreSQL 连接字符串(包含 schema) | 必须指向独立的 log 数据库 |
| LOG_DB_USER LOG_DB_PASSWORD | postgres | 数据库用户名 / 密码 | 密码强烈建议后续改用 Vault 或 Secrets 管理 |
| LOG_DB_ASYNC_WRITE_ENABLED | false | 是否采用异步方式写入日志到 log_db | 建议生产环境开启,可降低主流程延迟 |
| LOG_DB_EXECUTOR_CORE_POOL_SIZE LOG_DB_EXECUTOR_MAX_POOL_SIZE | 10 20 | 异步写日志的线程池配置(核心线程数 / 最大线程数) | 根据日志量调整,过小会导致日志堆积 |
3. 前置条件与重要提醒
- 必须事先创建并准备好 log 数据库(PostgreSQL)
- log 库中的基础数据需与主库保持一致(如流程定义、节点信息等可能需要同步)
- 开启 Log DB 后,主要影响的表(对象):
- flow_instance
- job_instance
- job_instance_history
- action_log
4. 推荐生产环境配置示例
log-db:
enabled: true
jdbc-url: jdbc:postgresql://pg-log.example.com:5432/log_db?currentSchema=log_db
username: log_user
password: password
maximum-pool-size: 30
minimum-idle: 5
async-write-enabled: true
executor:
core-pool-size: 16
max-pool-size: 32
如有特定场景(日志量极大、高并发、读写分离等),可以进一步调整连接池和线程池参数。
