5.0.0-beta

数据源配置项说明

  1. schemaName: # 逻辑数据源名称
  2. dataSources: # 数据源配置,可配置多个 <data-source-name>
  3. <data-source-name>: # 与 ShardingSphere-JDBC 配置不同,无需配置数据库连接池
  4. url: #数据库 URL 连接
  5. username: # 数据库用户名
  6. password: # 数据库密码
  7. connectionTimeoutMilliseconds: # 连接超时毫秒数
  8. idleTimeoutMilliseconds: # 空闲连接回收超时毫秒数
  9. maxLifetimeMilliseconds: # 连接最大存活时间毫秒数
  10. maxPoolSize: 50 # 最大连接数
  11. minPoolSize: 1 # 最小连接数
  12. rules: # 与 ShardingSphere-JDBC 配置一致
  13. # ...

权限配置

用于执行登录 Sharding Proxy 的权限验证。 配置用户名、密码、可访问的数据库后,必须使用正确的用户名、密码才可登录。

  1. rules:
  2. - !AUTHORITY
  3. users:
  4. - root@localhost:root # <username>@<hostname>:<password>,hostname 为 % 或空字符串,则代表不限制 host。
  5. - sharding@:sharding
  6. provider:
  7. type: NATIVE # 必须显式指定

hostname 为 % 或空字符串,则代表不限制 host。

provider 的 type 必须显式指定,具体实现可以参考 5.11 Proxy

Proxy 属性

  1. props:
  2. sql-show: # 是否在日志中打印 SQL。打印 SQL 可以帮助开发者快速定位系统问题。日志内容包含:逻辑 SQL,真实 SQL 和 SQL 解析结果。如果开启配置,日志将使用 Topic ShardingSphere-SQL,日志级别是 INFO。
  3. sql-simple: # 是否在日志中打印简单风格的 SQL。
  4. executor-size: # 用于设置任务处理线程池的大小。每个 ShardingSphereDataSource 使用一个独立的线程池,同一个 JVM 的不同数据源不共享线程池。
  5. max-connections-size-per-query: # 一次查询请求在每个数据库实例中所能使用的最大连接数。
  6. check-table-metadata-enabled: # 是否在程序启动和更新时检查分片元数据的结构一致性。
  7. proxy-frontend-flush-threshold: # 在 ShardingSphere-Proxy 中设置传输数据条数的 IO 刷新阈值。
  8. proxy-transaction-type: # ShardingSphere-Proxy 中使用的默认事务类型。包括:LOCAL、XA 和 BASE。
  9. proxy-opentracing-enabled: # 是否允许在 ShardingSphere-Proxy 中使用 OpenTracing。
  10. proxy-hint-enabled: # 是否允许在 ShardingSphere-Proxy 中使用 Hint。使用 Hint 会将 Proxy 的线程处理模型由 IO 多路复用变更为每个请求一个独立的线程,会降低 Proxy 的吞吐量。
  11. xa-transaction-manager-type: # XA 事务管理器类型。列如:Atomikos,Narayana,Bitronix。

5.0.0-alpha

数据源配置项说明

  1. schemaName: # 逻辑数据源名称
  2. dataSourceCommon:
  3. username: # 数据库用户名
  4. password: # 数据库密码
  5. connectionTimeoutMilliseconds: # 连接超时毫秒数
  6. idleTimeoutMilliseconds: # 空闲连接回收超时毫秒数
  7. maxLifetimeMilliseconds: # 连接最大存活时间毫秒数
  8. maxPoolSize: 50 # 最大连接数
  9. minPoolSize: 1 # 最小连接数
  10. dataSources: # 数据源配置,可配置多个 <data-source-name>
  11. <data-source-name>: # 与 ShardingSphere-JDBC 配置不同,无需配置数据库连接池
  12. url: #数据库 URL 连接
  13. rules: # 与 ShardingSphere-JDBC 配置一致
  14. # ...

覆盖 dataSourceCommon 说明

上面配置了每个库的公共数据源配置,如果你想覆盖 dataSourceCommon 属性,请在每个数据源单独配置。

  1. dataSources: # 数据源配置,可配置多个 <data-source-name>
  2. <data-source-name>: # 与 ShardingSphere-JDBC 配置不同,无需配置数据库连接池
  3. url: # 数据库 URL 连接
  4. username: # 数据库用户名,覆盖 dataSourceCommon 配置
  5. password: # 数据库密码,覆盖 dataSourceCommon 配置
  6. connectionTimeoutMilliseconds: # 连接超时毫秒数,覆盖 dataSourceCommon 配置
  7. idleTimeoutMilliseconds: # 空闲连接回收超时毫秒数,覆盖 dataSourceCommon 配置
  8. maxLifetimeMilliseconds: # 连接最大存活时间毫秒数,覆盖 dataSourceCommon 配置
  9. maxPoolSize: # 最大连接数,覆盖 dataSourceCommon 配置

权限配置

用于执行登录 Sharding Proxy 的权限验证。 配置用户名、密码、可访问的数据库后,必须使用正确的用户名、密码才可登录。

  1. authentication:
  2. users:
  3. root: # 自定义用户名
  4. password: root # 自定义用户名
  5. sharding: # 自定义用户名
  6. password: sharding # 自定义用户名
  7. authorizedSchemas: sharding_db, replica_query_db # 该用户授权可访问的数据库,多个用逗号分隔。缺省将拥有 root 权限,可访问全部数据库。

Proxy 属性

  1. props:
  2. sql-show: # 是否在日志中打印 SQL。打印 SQL 可以帮助开发者快速定位系统问题。日志内容包含:逻辑 SQL,真实 SQL 和 SQL 解析结果。如果开启配置,日志将使用 Topic ShardingSphere-SQL,日志级别是 INFO。
  3. sql-simple: # 是否在日志中打印简单风格的 SQL。
  4. acceptor-size: # 用于设置接收 TCP 请求线程池的大小。
  5. executor-size: # 用于设置任务处理线程池的大小。每个 ShardingSphereDataSource 使用一个独立的线程池,同一个 JVM 的不同数据源不共享线程池。
  6. max-connections-size-per-query: # 一次查询请求在每个数据库实例中所能使用的最大连接数。
  7. check-table-metadata-enabled: # 是否在程序启动和更新时检查分片元数据的结构一致性。
  8. query-with-cipher-column: # 是否使用加密列进行查询。在有原文列的情况下,可以使用原文列进行查询。
  9. proxy-frontend-flush-threshold: # 在 ShardingSphere-Proxy 中设置传输数据条数的 IO 刷新阈值。
  10. proxy-transaction-type: # ShardingSphere-Proxy 中使用的默认事务类型。包括:LOCAL、XA 和 BASE。
  11. proxy-opentracing-enabled: # 是否允许在 ShardingSphere-Proxy 中使用 OpenTracing。
  12. proxy-hint-enabled: # 是否允许在 ShardingSphere-Proxy 中使用 Hint。使用 Hint 会将 Proxy 的线程处理模型由 IO 多路复用变更为每个请求一个独立的线程,会降低 Proxy 的吞吐量。

ShardingSphere-4.x

数据源与分片配置项说明

数据分片

  1. schemaName: # 逻辑数据源名称
  2. dataSources: # 数据源配置,可配置多个 data_source_name
  3. <data_source_name>: # 与 Sharding-JDBC 配置不同,无需配置数据库连接池
  4. url: # 数据库 url 连接
  5. username: # 数据库用户名
  6. password: # 数据库密码
  7. connectionTimeoutMilliseconds: 30000 # 连接超时毫秒数
  8. idleTimeoutMilliseconds: 60000 # 空闲连接回收超时毫秒数
  9. maxLifetimeMilliseconds: 1800000 # 连接最大存活时间毫秒数
  10. maxPoolSize: 65 # 最大连接数
  11. shardingRule: # 省略数据分片配置,与 Sharding-JDBC 配置一致

读写分离

  1. schemaName: # 逻辑数据源名称
  2. dataSources: # 省略数据源配置,与数据分片一致
  3. masterSlaveRule: # 省略读写分离配置,与 Sharding-JDBC 配置一致

数据脱敏

  1. dataSource: # 省略数据源配置
  2. encryptRule:
  3. encryptors:
  4. <encryptor-name>:
  5. type: # 加解密器类型,可自定义或选择内置类型:MD5/AES
  6. props: # 属性配置, 注意:使用 AES 加密器,需要配置 AES 加密器的KEY属性:aes.key.value
  7. aes.key.value:
  8. tables:
  9. <table-name>:
  10. columns:
  11. <logic-column-name>:
  12. plainColumn: # 存储明文的字段
  13. cipherColumn: # 存储密文的字段
  14. assistedQueryColumn: # 辅助查询字段,针对 ShardingQueryAssistedEncryptor 类型的加解密器进行辅助查询
  15. encryptor: # 加密器名字
  16. props:
  17. query.with.cipher.column: true # 是否使用密文列查询

全局配置项说明

治理

与 Sharding-JDBC 配置一致。

Proxy 属性

  1. # 省略与 Sharding-JDBC 一致的配置属性
  2. props:
  3. acceptor.size: # 用于设置接收客户端请求的工作线程个数,默认为 CPU 核数 *2
  4. proxy.transaction.type: # 默认为 LOCAL 事务,允许 LOCAL,XA,BASE 三个值,XA 采用 Atomikos 作为事务管理器,BASE 类型需要拷贝实现 ShardingTransactionManager 的接口的 jar 包至 lib 目录中
  5. proxy.opentracing.enabled: # 是否开启链路追踪功能,默认为不开启。详情请参见[链路追踪](/cn/features/orchestration/apm/)
  6. check.table.metadata.enabled: # 是否在启动时检查分表元数据一致性,默认值: false
  7. proxy.frontend.flush.threshold: # 对于单个大查询,每多少个网络包返回一次

权限验证

用于执行登录 Sharding Proxy 的权限验证。配置用户名、密码、可访问的数据库后,必须使用正确的用户名、密码才可登录 Proxy。

  1. authentication:
  2. users:
  3. root: # 自定义用户名
  4. password: root # 自定义用户名
  5. sharding: # 自定义用户名
  6. password: sharding # 自定义用户名
  7. authorizedSchemas: sharding_db, masterslave_db # 该用户授权可访问的数据库,多个用逗号分隔。缺省将拥有 root 权限,可访问全部数据库。

ShardingSphere-3.x

数据源与分片配置项说明

数据分片

  1. schemaName: # 逻辑数据源名称
  2. dataSources: # 数据源配置,可配置多个 data_source_name
  3. <data_source_name>: # 与 Sharding-JDBC 配置不同,无需配置数据库连接池
  4. url: # 数据库url连接
  5. username: # 数据库用户名
  6. password: # 数据库密码
  7. autoCommit: true # hikari连接池默认配置
  8. connectionTimeout: 30000 # hikari 连接池默认配置
  9. idleTimeout: 60000 # hikari 连接池默认配置
  10. maxLifetime: 1800000 # hikari 连接池默认配置
  11. maximumPoolSize: 65 # hikari 连接池默认配置
  12. shardingRule: # 省略数据分片配置,与 Sharding-JDBC 配置一致

读写分离

  1. schemaName: # 逻辑数据源名称
  2. dataSources: # 省略数据源配置,与数据分片一致
  3. masterSlaveRule: # 省略读写分离配置,与 Sharding-JDBC 配置一致

全局配置项说明

数据治理

与 Sharding-JDBC 配置一致。

Proxy 属性

  1. # 省略与 Sharding-JDBC 一致的配置属性
  2. props:
  3. acceptor.size: # 用于设置接收客户端请求的工作线程个数,默认为 CPU 核数 *2
  4. proxy.transaction.enabled: # 是否开启事务, 目前仅支持XA事务,默认为不开启
  5. proxy.opentracing.enabled: # 是否开启链路追踪功能,默认为不开启。详情请参见[链路追踪](/cn/features/orchestration/apm/)
  6. check.table.metadata.enabled: # 是否在启动时检查分表元数据一致性,默认值: false

权限验证

用于执行登录 Sharding Proxy 的权限验证。配置用户名、密码后,必须使用正确的用户名、密码才可登录 Proxy。

  1. authentication:
  2. username: root
  3. password: