管控

注册中心数据结构

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

  1. namespace
  2. ├──rules # 全局规则配置
  3. ├──transaction
  4. ├──active_version
  5. ├──versions
  6. ├──0
  7. ├──props # 属性配置
  8. ├──active_verison
  9. ├──versions
  10. ├──0
  11. ├──metadata # Metadata 配置
  12. ├──${databaseName}
  13. ├──data_sources
  14. ├──units # 存储单元结构配置
  15. ├──${dataSourceName}
  16. ├──active_verison # 激活版本
  17. ├──versions # 版本号
  18. ├──0
  19. ├──...
  20. ├──nodes # 存储节点结构配置
  21. ├──${dataSourceName}
  22. ├──active_verison # 激活版本
  23. ├──versions # 版本号
  24. ├──0
  25. ├──...
  26. ├──schemas # Schema 列表
  27. ├──${schemaName}
  28. ├──tables # 表结构配置
  29. ├──${tableName}
  30. ├──active_verison # 激活版本
  31. ├──versions # 版本号
  32. ├──0
  33. ├──...
  34. ├──views # 视图结构配置
  35. ├──${viewName}
  36. ├──active_verison # 激活版本
  37. ├──versions # 版本号
  38. ├──0
  39. ├──...
  40. ├──rules
  41. ├──sharding
  42. ├──algorithms
  43. ├──${algorithmName} # algorithm 名称
  44. ├──active_verison # 激活版本
  45. ├──versions # 版本号
  46. ├──0
  47. ├──...
  48. ├──key_generators
  49. ├──${keyGeneratorName} # keyGenerator名称
  50. ├──active_verison # 激活版本
  51. ├──versions # 版本号
  52. ├──0
  53. ├──...
  54. ├──tables
  55. ├──${tableName} # 逻辑表名称
  56. ├──active_verison # 激活版本
  57. ├──versions # 版本号
  58. ├──0
  59. ├──...
  60. ├──nodes
  61. ├──compute_nodes
  62. ├──online
  63. ├──proxy
  64. ├──UUID # Proxy 实例唯一标识
  65. ├──....
  66. ├──jdbc
  67. ├──UUID # JDBC 实例唯一标识
  68. ├──....
  69. ├──status
  70. ├──UUID
  71. ├──....
  72. ├──worker_id
  73. ├──UUID
  74. ├──....
  75. ├──show_process_list_trigger
  76. ├──process_id:UUID
  77. ├──....
  78. ├──labels
  79. ├──UUID
  80. ├──....
  81. ├──storage_nodes
  82. ├──${databaseName.groupName.ds}
  83. ├──${databaseName.groupName.ds}
  84. ├──statistics
  85. ├──shardingsphere
  86. ├──schemas
  87. ├──shardingsphere
  88. ├──tables # 系统表
  89. ├──sharding_table_statistics # 分片统计表数据
  90. ├──8a2dcb0d97c3d86ef77b3d4651a1d7d0 # md5
  91. ├──cluster_information # 集群信息表

/rules

全局规则配置,事务配置。

  1. transaction:
  2. defaultType: XA
  3. providerType: Atomikos

/props

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

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

/metadata/${databaseName}/data_sources/units/ds_0/versions/0

数据库连接池的,不同数据库连接池属性自适配(例如: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

/metadata/${databaseName}/data_sources/nodes/ds_0/versions/0

数据库连接池的,不同数据库连接池属性自适配(例如: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

/metadata/${databaseName}/rules/sharding/tables/t_order/versions/0

分片规则配置。

  1. actualDataNodes: ds_${0..1}.t_order_${0..1}
  2. auditStrategy:
  3. allowHintDisable: true
  4. auditorNames:
  5. - t_order_dml_sharding_conditions_0
  6. databaseStrategy:
  7. standard:
  8. shardingAlgorithmName: t_order_database_inline
  9. shardingColumn: user_id
  10. keyGenerateStrategy:
  11. column: another_id
  12. keyGeneratorName: t_order_snowflake
  13. logicTable: t_order
  14. tableStrategy:
  15. standard:
  16. shardingAlgorithmName: t_order_table_inline
  17. shardingColumn: order_id

/metadata/${databaseName}/schemas/${schemaName}/tables/t_order/versions/0

表结构配置,每个表使用单独节点存储。

  1. name: t_order # 表名
  2. columns: # 列
  3. id: # 列名
  4. caseSensitive: false
  5. dataType: 0
  6. generated: false
  7. name: id
  8. primaryKey: trues
  9. order_id:
  10. caseSensitive: false
  11. dataType: 0
  12. generated: false
  13. name: order_id
  14. primaryKey: false
  15. indexs: # 索引
  16. t_user_order_id_index: # 索引名
  17. name: t_user_order_id_index

/nodes/compute_nodes

数据库访问对象运行实例信息,子节点是当前运行实例的标识。 运行实例标识使用 UUID 生成,每次启动重新生成。 运行实例标识均为临时节点,当实例上线时注册,下线时自动清理。 注册中心监控这些节点的变化来治理运行中实例对数据库的访问等。

/nodes/storage_nodes

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