数据源最大连接数在 application.yml 写 20,配置中心写 50,启动脚本的 -D 参数写 8。运行时的值是 8,连接池一直不够用,改配置中心怎么改都没反应。碰到这种情况,我一般先确认改动有没有真的生效。
原因不复杂,Spring Boot 的属性源有固定优先级,命令行参数高于配置中心高于本地文件。运维以为改配置中心就能生效,实际被启动参数压住了。
碰到「配置加载顺序覆盖」这类问题,我习惯先把当前配置原样备份一份,改坏了立刻换回来,不用现场推。改完顺手把文档补一句,省得下次自己重新推一遍。
java -jar app.jar -Dspring.datasource.hikari.maximum-pool-size=8 curl http://localhost:9000/actuator/env | grep -A2 maximum-pool-size # 看 propertySource 是哪一层
监控和日志的时间要对上,时区不一致会多绕很大一圈。临时改动用注释写上日期和原因,过两周自己都记不清为什么这么写。
具体做法是,把同一项的多处配置收敛到一处 只留配置中心;启动脚本里去掉写死的 -D 参数;启动时打印最终生效值 和配置中心对比。
最后用这个标准收尾,去掉启动参数后最大连接数变成配置中心的 50,actuator 里来源显示为 nacos 而不是命令行。
