影子库

背景信息

如果您想在 ShardingSphere-Proxy 中使用 ShardingSphere 影子库功能请参考以下配置。

参数解释

  1. rules:
  2. - !SHADOW
  3. dataSources:
  4. shadowDataSource:
  5. productionDataSourceName: # 生产数据源名称
  6. shadowDataSourceName: # 影子数据源名称
  7. tables:
  8. <table_name>:
  9. dataSourceNames: # 影子表关联影子数据源名称列表
  10. - <shadow_data_source>
  11. shadowAlgorithmNames: # 影子表关联影子算法名称列表
  12. - <shadow_algorithm_name>
  13. defaultShadowAlgorithmName: # 默认影子算法名称(选配项)
  14. shadowAlgorithms:
  15. <shadow_algorithm_name> (+): # 影子算法名称
  16. type: # 影子算法类型
  17. props: # 影子算法属性配置

详情请参见内置影子算法列表

操作步骤

  1. 在 YAML 文件中配置影子库规则,包含数据源、影子库规则、全局属性等配置项;
  2. 调用 YamlShardingSphereDataSourceFactory 对象的 createDataSource 方法,根据 YAML 文件中的配置信息创建 ShardingSphereDataSource。

配置示例

  1. dataSources:
  2. ds:
  3. url: jdbc:mysql://127.0.0.1:3306/ds?serverTimezone=UTC&useSSL=false
  4. username: root
  5. password:
  6. connectionTimeoutMilliseconds: 30000
  7. idleTimeoutMilliseconds: 60000
  8. maxLifetimeMilliseconds: 1800000
  9. maxPoolSize: 50
  10. minPoolSize: 1
  11. shadow_ds:
  12. url: jdbc:mysql://127.0.0.1:3306/shadow_ds?serverTimezone=UTC&useSSL=false
  13. username: root
  14. password:
  15. connectionTimeoutMilliseconds: 30000
  16. idleTimeoutMilliseconds: 60000
  17. maxLifetimeMilliseconds: 1800000
  18. maxPoolSize: 50
  19. minPoolSize: 1
  20. rules:
  21. - !SHADOW
  22. dataSources:
  23. shadowDataSource:
  24. productionDataSourceName: ds
  25. shadowDataSourceName: shadow_ds
  26. tables:
  27. t_order:
  28. dataSourceNames:
  29. - shadowDataSource
  30. shadowAlgorithmNames:
  31. - user_id_insert_match_algorithm
  32. - sql_hint_algorithm
  33. shadowAlgorithms:
  34. user_id_insert_match_algorithm:
  35. type: REGEX_MATCH
  36. props:
  37. operation: insert
  38. column: user_id
  39. regex: "[1]"
  40. sql_hint_algorithm:
  41. type: SQL_HINT

相关参考