ShardingSphere中有哪些配置项呢?
下文笔者讲述ShardingShere配置项的简介说明,如下所示
例(完整YAML格式)
Apache ShardingSphere简介
Apache ShardingSphere 是一个分布式数据库中间件 提供丰富配置项 用于定义数据源、分片策略、读写分离、加密脱敏等功能
Apache ShardingSphere配置项
一、核心配置项(`rules`)
ShardingSphere 的配置是基于 `rules` 配置项进行扩展的,常见的规则如下: 1.数据分片(`sharding`) -作用:定义水平分片、垂直分片、复合分片等。 -关键配置项: - `tables`: 定义逻辑表及其分片规则。 ```yaml tables: t_order: actual-data-nodes: ds$->{0..1}.t_order$->{0..1} table-strategy: standard: sharding-column: order_id sharding-algorithm-name: t_order_table_inline key-generator: type: SNOWFLAKE - `sharding-algorithms`: 分片算法定义。 ```yaml sharding-algorithms: t_order_table_inline: type: INLINE props: algorithm-expression: t_order_$->{order_id % 2} ``` 2.读写分离(`readwrite-splitting`) -作用:将读操作和写操作路由到不同的数据库实例。 -关键配置项: ```yaml readwrite-splitting: data-sources: ds_0: write-data-source-name: master read-data-source-names: - slave1 - slave2 load-balancer-type: ROUND_ROBIN 3.数据加密 -作用:对敏感字段进行加密存储。 -关键配置项: ```yaml encrypt: tables: user: columns: password: cipher-column: password_cipher plain-column: password_plain encryptor-name: aes_encryptor encryptors: aes_encryptor: type: AES props: aes-key-value: 123456 4.影子库配置(`shadow`) - 作用:用于测试环境的数据分流,避免污染真实数据。 - 关键配置项: ```yaml shadow: mappings: t_order: production-data-source-names: ds0,ds1 shadow-data-source-names: shadow_ds0 shadow-algorithms: order-id-algorithm: type: VALUE_MATCH props: operation: INSERT value: 1024 5.数据脱敏(`masking`) - 作用:对输出结果进行脱敏处理。 - 关键配置项: ```yaml masking: rules: - logic-table: user logic-column: id_card mask-algorithm: id_card_mask mask-algorithms: id_card_mask: type: ID_CARD
二数据源配置项(`dataSources`)
定义多个实际的数据源连接信息: ```yaml dataSources: ds0: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://localhost:3306/ds0 username: root password: root
三、全局配置项([props])
控制 ShardingSphere 的全局行为:
配置项 | 示例值 | 说明 |
`sql.show` | `true` / `false` | 是否打印解析后SQL |
`executor.size` | `16` | 工作线程池大小 |
`check.table.metadata.enabled` | `true` | 是否检查元数据一致性 |
```yaml dataSources: ds0: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://localhost:3306/ds0 username: root password: root rules: - !SHARDING tables: t_order: actual-data-nodes: ds0.t_order_$->{0..1} table-strategy: standard: sharding-column: order_id sharding-algorithm-name: t_order_inline sharding-algorithms: t_order_inline: type: INLINE props: algorithm-expression: t_order_$->{order_id % 2} - !READWRITE_SPLITTING data-sources: ds_0: write-data-source-name: ds0 read-data-source-names: - ds1 load-balancer-type: ROUND_ROBIN props: sql.show: true
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。