返回
ShardingSphere 4.x Sharding-JDBC 用户手册:YAML 配置指南
见解分享
2023-10-14 10:00:41
作为 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,并享受更加便捷高效的配置体验。