Solon v2.8.0

八、多数据源与动态、分片数据源

</> markdown

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、数据源构建参考