动态数据源
大约 2 分钟
动态数据源
因为工作原因,看了一下动态数据源的东东,从开源的东西上看,动态数据源都是基于spring的AbstractRoutingDataSource进行扩展,spring内部还是认为一个数据源,管理的还是一个连接.
但是外部大量的开源的内容,都没考虑到动态数据源在项目使用过程中的意义.这边有必要说明下.
所谓的动态数据源,主要有2种场景
- 内部管理类场景,因为执行和管理分离,而且执行单元有自己的数据库,管理单元也有自己的数据库,但是管理一般是要访问执行单元的数据库.这就给管理单元提出了一个问题,到底是管理单元接入多个数据源还是把其他的数据同步到管理单元的数据库?
- 数据同步方案,这种方案,如果管理单元只是查看功能,执行单元的数据同步过来,通过管理查看是没问题的.但是,绝大部分的管理单元都有配置,管理能力,需要改变数据,这个时候,数据同步的方案就不行了
- 如果一个系统里面接入了多个数据源,怎么来管理多个数据源???
- 一些半吊子架构师,通常给出一些奇葩的方案,其中之一就是微服务下的
读写分离.这种方案内部的实现就是通过动态数据源的切换,把请求从写库切换到读库.这个方案的合理性我们后续再讨论,这个场景也是动态数据源经常性使用的一个场景.
