SpringBoot 如何在运行时修改数据库配置

风梳烟沐丶 2020-09-17 11:26:20
后端使用SpringBoot框架,运行时假如主数据库崩了想切换到备用数据库,有什么办法可以不用重启直接切换数据库配置吗
...全文
3585 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
风梳烟沐丶 2020-09-18
  • 打赏
  • 举报
回复
谢谢各位,最后决定修改配置文件然后直接让SpringBoot重启了
szxya 2020-09-17
  • 打赏
  • 举报
回复
代码根据数据库数量部署多份,加网关,再用nginx进行反向代理
风梳烟沐丶 2020-09-17
  • 打赏
  • 举报
回复
引用 5 楼 水边2 的回复:
如果你想改配置来支持,建议你自己写 new JdbcTemplate(dataSource); 我们的作法是在数据库前面加一层代理,有问题时,切换代理指向。
现在用的是Mybatis,本来想直接重启DataSource,但是发现好像只有Durid可以restart,因为数据库的切换是需要另一个应用来调用这边的接口,然后才能切换,所以有点麻烦
游北亮 2020-09-17
  • 打赏
  • 举报
回复
如果你想改配置来支持,建议你自己写 new JdbcTemplate(dataSource); 我们的作法是在数据库前面加一层代理,有问题时,切换代理指向。
游北亮 2020-09-17
  • 打赏
  • 举报
回复
部署一个配置中心 spring-cloud-config-server, 然后你的其它服务把配置迁移到配置中心。 然后就可以不重启应用,修改配置了。 1、修改配置中心的配置; 2、调用其它服务的配置刷新接口 /acturaor/refresh 不过我实际验证了一下,上面的代码不会刷新数据库连接串。
风梳烟沐丶 2020-09-17
  • 打赏
  • 举报
回复
引用 1 楼 KeepSayingNo 的回复:
这个是直接去设置数据库的配置为主备,不是在代码里写的
因为主备数据库在不同的服务器,连接的URL什么的都不一样,所以需要切换
KeepSayingNo 2020-09-17
  • 打赏
  • 举报
回复
这个是直接去设置数据库的配置为主备,不是在代码里写的

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧