博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SpringCloud运行时刷新数据源相关配置
阅读量:6637 次
发布时间:2019-06-25

本文共 1200 字,大约阅读时间需要 4 分钟。

  hot3.png

数据库的相关配置,一般来说是不会频繁变的,特别是当数据库连接使用的是域名而不是ip地址的时候,这样即使ip地址变化了,也不影响业务系统。这里呢,我们讲一下如果真的是迫不得已的时候,有没有不重启就可以更改配置的方法。

思路

有很多种方案,这里我们讲一下基于SpringCloud的RefreshScope的方案。

数据库配置实例

spring:  datasource:    platform: postgres    url: jdbc:postgresql://192.168.99.100:5432/postgres    driverClassName: org.postgresql.Driver    username: postgres    password: 123456    validation-query: SELECT 1    test-while-idle: true    test-on-borrow: true

Java配置

@Configurationpublic class DbConfig {    @Bean    @RefreshScope //refresh    @Primary    @ConfigurationProperties(prefix = "spring.datasource")    public DataSource dataSource() {        return DataSourceBuilder.create().build();    }}

更新

调用一下服务的refresh端点就可以了

curl -i -X POST http://localhost:9001/refresh

验证

@Componentpublic class ScheduleTask {    @Autowired    UserRepository userRepository;    @Scheduled(fixedDelay = 5*1000 /**ms**/,initialDelay = 5*1000)    public void testDataSourceConn() {        try{            System.out.println("call jdbc");            userRepository.findAll();        }catch (Exception e){            e.printStackTrace();        }    }}

这里跑一个定时任务,不停地调用数据查询方法,然后中途改下密码,然后refresh一下,看是否报错

doc

转载于:https://my.oschina.net/go4it/blog/1486306

你可能感兴趣的文章
【VMCloud云平台】SCVMM配置(一)添加Hyper-V群集
查看>>
网络状态都正常,ping 网关能ping通,但不正常,出现“?”,并且不能进行域名解析...
查看>>
技术变成客户才值钱
查看>>
Elasticsearch常用操作API
查看>>
致青春VS杜蕾斯,用QQ空间电影大数据解读关联性
查看>>
疯狂ios讲义疯狂连载之显示动画
查看>>
Python为何能上位碾压Java?
查看>>
使用智能DNS与多线路由解决教育网服务器费用难题
查看>>
Adobe仿效微软 实施“周二补丁日”
查看>>
又晚睡了...
查看>>
设计模式—观察者模式
查看>>
你必须知道的ADO.NET(三) 连接字符串,你小觑了吗?
查看>>
传统组织结构中的关系类型
查看>>
Attributes.Add用途与用法
查看>>
设计的核心任务之一:层次的控制
查看>>
MVC Music Sotre -2
查看>>
IOS NSOperation的使用方法
查看>>
Android Menu菜单的编写及事件响应
查看>>
Windows Server 2008 R2 如何启动kernel dbg进行双机内核调试『续bcdedit 用法详解』
查看>>
C#中数据的批量插入和更新 转载自21教程网
查看>>