读写分离

背景信息

读写分离 YAML 配置方式可读性高,通过 YAML 格式,能够快速地理解读写分片规则之间的依赖关系,ShardingSphere 会根据 YAML 配置,自动完成 ShardingSphereDataSource 对象的创建,减少用户不必要的编码工作。

参数解释

静态读写分离

  1. rules:
  2. - !READWRITE_SPLITTING
  3. dataSources:
  4. <data_source_name> (+): # 读写分离逻辑数据源名称
  5. static_strategy: # 读写分离类型
  6. write_data_source_name: # 写库数据源名称
  7. read_data_source_names: # 读库数据源名称,多个从数据源用逗号分隔
  8. loadBalancerName: # 负载均衡算法名称
  9. # 负载均衡算法配置
  10. loadBalancers:
  11. <load_balancer_name> (+): # 负载均衡算法名称
  12. type: # 负载均衡算法类型
  13. props: # 负载均衡算法属性配置
  14. # ...

动态读写分离

  1. rules:
  2. - !READWRITE_SPLITTING
  3. dataSources:
  4. <data_source_name> (+): # 读写分离逻辑数据源名称
  5. dynamic_strategy: # 读写分离类型
  6. auto_aware_data_source_name: # 数据库发现逻辑数据源名称
  7. loadBalancerName: # 负载均衡算法名称
  8. # 负载均衡算法配置
  9. loadBalancers:
  10. <load_balancer_name> (+): # 负载均衡算法名称
  11. type: # 负载均衡算法类型
  12. props: # 负载均衡算法属性配置
  13. # ...

算法类型的详情,请参见内置负载均衡算法列表。 查询一致性路由的详情,请参见核心特性:读写分离

操作步骤

  1. 添加读写分离数据源
  2. 设置负载均衡算法
  3. 使用读写分离数据源

配置示例

  1. rules:
  2. - !READWRITE_SPLITTING
  3. dataSources:
  4. readwrite_ds:
  5. staticStrategy:
  6. writeDataSourceName: write_ds
  7. readDataSourceNames:
  8. - read_ds_0
  9. - read_ds_1
  10. loadBalancerName: random
  11. loadBalancers:
  12. random:
  13. type: RANDOM

相关参考