管控

注册中心数据结构

在定义的命名空间下,rulespropsmetadata 节点以 YAML 格式存储配置,可通过修改节点来实现对于配置的动态管理。status 存储数据库访问对象运行节点,用于区分不同数据库访问实例。

  1. namespace
  2. ├──rules # 全局规则配置
  3. ├──props # 属性配置
  4. ├──metadata # Metadata 配置
  5. ├──${schema_1} # Schema 名称1
  6. ├──dataSources # 数据源配置
  7. ├──rules # 规则配置
  8. ├──schema # 表结构配置
  9. ├──${schema_2} # Schema 名称2
  10. ├──dataSources # 数据源配置
  11. ├──rules # 规则配置
  12. ├──schema # 表结构配置
  13. ├──status
  14. ├──compute_nodes
  15. ├──online
  16. ├──${your_instance_ip_a}@${your_instance_port_x}
  17. ├──${your_instance_ip_b}@${your_instance_port_y}
  18. ├──....
  19. ├──circuit_breaker
  20. ├──${your_instance_ip_c}@${your_instance_port_v}
  21. ├──${your_instance_ip_d}@${your_instance_port_w}
  22. ├──....
  23. ├──storage_nodes
  24. ├──disable
  25. ├──${schema_1.ds_0}
  26. ├──${schema_1.ds_1}
  27. ├──....
  28. ├──primary
  29. ├──${schema_2.ds_0}
  30. ├──${schema_2.ds_1}
  31. ├──....

/rules

全局规则配置,可包括访问 ShardingSphere-Proxy 用户名和密码的权限配置。

  1. - !AUTHORITY
  2. users:
  3. - root@%:root
  4. - sharding@127.0.0.1:sharding
  5. provider:
  6. type: ALL_PRIVILEGES_PERMITTED

/props

属性配置,详情请参见配置手册

  1. kernel-executor-size: 20
  2. sql-show: true

/metadata/${schemaName}/dataSources

多个数据库连接池的集合,不同数据库连接池属性自适配(例如:DBCP,C3P0,Druid, HikariCP)。

  1. ds_0:
  2. initializationFailTimeout: 1
  3. validationTimeout: 5000
  4. maxLifetime: 1800000
  5. leakDetectionThreshold: 0
  6. minimumIdle: 1
  7. password: root
  8. idleTimeout: 60000
  9. jdbcUrl: jdbc:mysql://127.0.0.1:3306/ds_0?serverTimezone=UTC&useSSL=false
  10. dataSourceClassName: com.zaxxer.hikari.HikariDataSource
  11. maximumPoolSize: 50
  12. connectionTimeout: 30000
  13. username: root
  14. poolName: HikariPool-1
  15. ds_1:
  16. initializationFailTimeout: 1
  17. validationTimeout: 5000
  18. maxLifetime: 1800000
  19. leakDetectionThreshold: 0
  20. minimumIdle: 1
  21. password: root
  22. idleTimeout: 60000
  23. jdbcUrl: jdbc:mysql://127.0.0.1:3306/ds_1?serverTimezone=UTC&useSSL=false
  24. dataSourceClassName: com.zaxxer.hikari.HikariDataSource
  25. maximumPoolSize: 50
  26. connectionTimeout: 30000
  27. username: root
  28. poolName: HikariPool-2

/metadata/${schemaName}/rules

规则配置,可包括数据分片、读写分离、数据加密、影子库压测等配置。

  1. - !SHARDING
  2. xxx
  3. - !READWRITE_SPLITTING
  4. xxx
  5. - !ENCRYPT
  6. xxx

/metadata/${schemaName}/schema

表结构配置,暂不支持动态修改。

  1. tables: # 表
  2. t_order: # 表名
  3. columns: # 列
  4. id: # 列名
  5. caseSensitive: false
  6. dataType: 0
  7. generated: false
  8. name: id
  9. primaryKey: trues
  10. order_id:
  11. caseSensitive: false
  12. dataType: 0
  13. generated: false
  14. name: order_id
  15. primaryKey: false
  16. indexs: # 索引
  17. t_user_order_id_index: # 索引名
  18. name: t_user_order_id_index
  19. t_order_item:
  20. columns:
  21. order_id:
  22. caseSensitive: false
  23. dataType: 0
  24. generated: false
  25. name: order_id
  26. primaryKey: false

/status/compute_nodes

数据库访问对象运行实例信息,子节点是当前运行实例的标识。 运行实例标识由运行服务器的 IP 地址和 PORT 构成。 运行实例标识均为临时节点,当实例上线时注册,下线时自动清理。 注册中心监控这些节点的变化来治理运行中实例对数据库的访问等。

/status/storage_nodes

可以治理读写分离从库,可动态添加删除以及禁用。