返回

ShardingSphere 4.x Sharding-JDBC 用户手册:YAML 配置指南

见解分享

作为 ShardingSphere 4.x Sharding-JDBC 的用户,你将通过这份 YAML 配置指南全面了解如何通过 YAML 文件进行配置。这本指南将详细介绍 YAML 配置的语法、选项以及具体配置示例。

YAML 配置语法

YAML 配置文件采用 YAML 格式编写。YAML 是人类可读的数据序列化语言,用于表示复杂的数据结构。其语法简单易懂,主要包括以下元素:

  • 缩进: 使用空格或制表符进行缩进,来表示层级结构。
  • 键值对: 冒号 (:) 分隔键和值,键使用字符串表示,值可以是字符串、数字、布尔值或数组等。
  • 数组: 使用中括号 ([]) 表示数组,数组中的元素可以是任意类型。
  • 注释: 以 # 开头的行表示注释,会被解析器忽略。

Sharding-JDBC 配置项

Sharding-JDBC 支持丰富的配置选项,通过 YAML 配置可以灵活地定制分片、读写分离、数据脱敏等功能。以下列出一些常用的配置项:

  • 分片规则: 用于定义分片策略,支持按表、分片键和分片算法进行配置。
  • 读写分离: 用于配置主从数据库的信息,包括主库地址、从库地址、负载均衡策略等。
  • 数据脱敏: 用于配置数据脱敏规则,支持对敏感数据进行加密、脱敏等操作。
  • 治理配置项: 用于配置 ShardingSphere 的治理功能,包括分布式事务、规则校验等。

配置示例

配置分片

# 分片规则
rules:
  # 按表分片
  - tables:
      tableNames: [t_order, t_order_item]
      actualDataNodes: ds_${0..1}.t_order_${0..1}
      # 按 id 分片
      keyGeneratorColumnName: order_id
      # 一致性哈希算法
      keyGeneratorClass: com.google.common.hash.Hashing.consistentHash
  # 按分片键分片
  - tables: [t_user]
      actualDataNodes: ds_${0..1}.t_user_${0..1}
      keyGeneratorColumnName: user_id
      # 数据库取模算法
      keyGeneratorClass: com.dangdang.ddframe.rdb.sharding.keygen.DefaultKeyGenerator
  # 按分片算法分片
  - tables: [t_dict]
      actualDataNodes: ds_${0..1}.t_dict_${0..1}
      keyGeneratorColumnName: dict_id
      # 取余算法
      keyGeneratorClass: com.dangdang.ddframe.rdb.sharding.keygen.modulo.ModuloKeyGenerator

配置读写分离

# 读写分离
readwrite-splitting:
  name: ds
  primary-data-source:
    url: jdbc:mysql://127.0.0.1:3306/ds_master
    username: root
    password: password
  slave-data-sources:
    - url: jdbc:mysql://127.0.0.1:3306/ds_slave1
      username: root
      password: password
    - url: jdbc:mysql://127.0.0.1:3306/ds_slave2
      username: root
      password: password
  load-balance-algorithm: com.dangdang.ddframe.rdb.sharding.loadbalance.RandomLoadBalancer

配置数据脱敏

# 数据脱敏
data-masking:
  # 按列脱敏
  column-maskings:
    t_order.order_id: DES
    t_order.user_id: MD5
    t_user.mobile: AES
  # 按表脱敏
  table-maskings:
    t_user: t_user_mask
    t_dict: t_dict_mask

总结

通过 YAML 配置,你可以灵活地配置 Sharding-JDBC 的各种功能。本指南详细介绍了 YAML 配置的语法和选项,并提供了具体的配置示例。通过遵循本指南,你可以快速上手 Sharding-JDBC,并享受更加便捷高效的配置体验。