八、数据源之动态、分片、多数据源
1、确定几个概念
固定单库数据源:
- 是指1个数据源,内部不再有别的子数据源。是它就是它了
- 比如:HikariDataSource、DruidDataSource
固定分片数据源(内部多源,基于分片规则切换):
- 是指1个数据源内有多个子数据源,根据规则确定相关数据源。一般用于分库分表或读写分离场景等。
- 比如:ShardingDataSource(基于 Apache ShardingSphere 适配的数据源)
动态数据源(内部多源,基于线程状态切换):
- 是指1个数据源内有多个子数据源,且可以动态切换内部的子数据源。用时,需要不断手动指定。
- 比如:DynamicDataSource
- 一般通过:
@DynamicDs("db_user_1")
、@DynamicDs("db_user_2")
切换动态数据源内部的子数据源
多数据源:
- 即指有多个数据源(可以是固定数据源或动态数据源),且各不相关,相互独立。
- 一般通过:
@Db("db_user")
、@Db("db_order")
确认1个数据源。
2、强调多数据源支持
- 强调多数据源的配置。例:demo.db1...,demo.db2...
- 强调带 name 的 DataSource Bean。
- 强调使用 @Db("name") 的数据源注解。//需要 orm 插件自己定义与适配
根据业务需要配置一个或多个数据源并构建,可以是固定数据源,或者动态数据源。
3、数据源构建参考
- 生态 / solon-data-dynamicds ,动态数据源
- 生态 / solon-data-shardingds ,分布数据源