Centralized configuration: more and more running examples have made it hard to manage separate configurations and asynchronized configurations can cause serious problems. Concentrating them in the configuration center can make the management more effective.
Dynamic configuration: distribution after configuration modification is another important capability of configuration center. It can support dynamic switch between data sources and rule configurations.
Under defined namespace, configuration center stores data sources, rule configurations, authentication configuration, and properties in YAML. Modifying nodes can dynamically refresh configurations.
namespace
├──authentication # Authentication configuration
├──props # Properties configuration
├──schemas # Schema configuration
├ ├──${schema_1} # Schema name 1
├ ├ ├──datasource # Datasource configuration
├ ├ ├──rule # Rule configuration
├ ├ ├──table # Table configuration
├ ├──${schema_2} # Schema name 2
├ ├ ├──datasource # Datasource configuration
├ ├ ├──rule # Rule configuration
├ ├ ├──table # Table configuration
Authentication configuration. Can configure username and password for ShardingSphere-Proxy.
username: root
password: root
Properties configuration. Please refer to Configuration Manual for more details.
executor-size: 20
sql-show: true
A collection of multiple database connection pools, whose properties (e.g. DBCP, C3P0, Druid and HikariCP) are configured by users themselves.
dataSources:
ds_0:
dataSourceClassName: com.zaxxer.hikari.HikariDataSource
props:
url: jdbc:mysql://127.0.0.1:3306/demo_ds_0?serverTimezone=UTC&useSSL=false
password: null
maxPoolSize: 50
maintenanceIntervalMilliseconds: 30000
connectionTimeoutMilliseconds: 30000
idleTimeoutMilliseconds: 60000
minPoolSize: 1
username: root
maxLifetimeMilliseconds: 1800000
ds_1:
dataSourceClassName: com.zaxxer.hikari.HikariDataSource
props:
url: jdbc:mysql://127.0.0.1:3306/demo_ds_1?serverTimezone=UTC&useSSL=false
password: null
maxPoolSize: 50
maintenanceIntervalMilliseconds: 30000
connectionTimeoutMilliseconds: 30000
idleTimeoutMilliseconds: 60000
minPoolSize: 1
username: root
maxLifetimeMilliseconds: 1800000
Rule configurations, including sharding, replica query, data encryption, shadow DB configurations.
rules:
- !SHARDING
xxx
- !REPLICA_QUERY
xxx
- !ENCRYPT
xxx
Dynamic modification of metadata content is not supported currently.
configuredSchemaMetaData: # Tables of configured with sharding rules
tables: # Tables
t_order: # table_name
columns: # Columns
id: # column_name
caseSensitive: false
dataType: 0
generated: false
name: id
primaryKey: trues
order_id:
caseSensitive: false
dataType: 0
generated: false
name: order_id
primaryKey: false
indexs: # Indexes
t_user_order_id_index: # index_name
name: t_user_order_id_index
t_order_item:
columns:
order_id:
caseSensitive: false
dataType: 0
generated: false
name: order_id
primaryKey: false
unconfiguredSchemaMetaDataMap: # Tables of no sharding rules configured
ds_0: # DataSources
tables: # Tables
t_user: # table_name
columns: # Columns
user_id: # column_name
caseSensitive: false
dataType: 0
generated: false
name: user_id
primaryKey: false
id:
caseSensitive: false
dataType: 0
generated: false
name: id
primaryKey: true
order_id:
caseSensitive: false
dataType: 0
generated: false
name: order_id
primaryKey: false
indexes: # Indexes
t_user_order_id_index: # index_name
name: t_user_order_id_index
t_user_user_id_index:
name: t_user_user_id_index
primary:
name: PRIMARY
Modification, deletion and insertion of relevant configurations in the config center will immediately take effect in the producing environment.