返回介绍

混合规则

发布于 2021-09-25 22:17:13 字数 1472 浏览 1069 评论 0 收藏 0

混合配置的规则项之间的叠加使用是通过数据源名称和表名称关联的。

如果前一个规则是面向数据源聚合的,下一个规则在配置数据源时,则需要使用前一个规则配置的聚合后的逻辑数据源名称; 同理,如果前一个规则是面向表聚合的,下一个规则在配置表时,则需要使用前一个规则配置的聚合后的逻辑表名称。

配置项说明

dataSources: # 配置真实存在的数据源作为名称
  write_ds:
    # ...省略具体配置
  read_ds_0:
    # ...省略具体配置
  read_ds_1:
    # ...省略具体配置

rules:
  - !SHARDING # 配置数据分片规则
    tables:
      t_user:
        actualDataNodes: ds.t_user_${0..1} # 数据源名称 `ds` 使用读写分离配置的逻辑数据源名称
        tableStrategy:
          standard:
            shardingColumn: user_id
            shardingAlgorithmName: t_user_inline
    shardingAlgorithms:
      t_user_inline:
        type: INLINE
        props:
          algorithm-expression: t_user_${user_id % 2}
  
  - !ENCRYPT # 配置数据加密规则
    tables:
      t_user: # 表名称 `t_user` 使用数据分片配置的逻辑表名称
        columns:
          pwd:
            plainColumn: plain_pwd
            cipherColumn: cipher_pwd
            encryptorName: encryptor_aes
    encryptors:
      encryptor_aes:
        type: aes
        props:
          aes-key-value: 123456abc
  
  - !READWRITE_SPLITTING # 配置读写分离规则
    dataSources:
      ds: # 读写分离的逻辑数据源名称 `ds` 用于在数据分片中使用
        writeDataSourceName: write_ds # 使用真实存在的数据源名称 `write_ds`
        readDataSourceNames:
          - read_ds_0 # 使用真实存在的数据源名称 `read_ds_0`
          - read_ds_1 # 使用真实存在的数据源名称 `read_ds_1`
        loadBalancerName: roundRobin
    loadBalancers:
      roundRobin:
        type: ROUND_ROBIN

props:
  sql-show: true

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文