ナビゲーション
Orchestration Governance Moduleは、Configuration Centre/Registry、Configuration Dynamics、Database Fusion Disable、Invocation Linkなどのガバナンス機能を提供します。
実現への動機
コンフィギュレーションの一元化:ランタイム・インスタンスの数が増えるにつれて、コンフィギュレーションが分散して管理することが難しくなり、コンフィギュレーションの同期がとれていないことが原因で発生する問題は深刻です。コンフィギュレーションをコンフィギュレーション・センターに一元化することで、より効果的な管理が可能になります。
コンフィギュレーションダイナミクス:コンフィギュレーション変更の配布も、Configuration Centreが提供できる重要な機能です。データソースの動的な切り替えや、スライシングや読み書き分離ポリシーによるテーブルの切り替えをサポートします。
コンフィギュレーション・センターのデータ構造
データソース、データスライシング、読み取り/書き込み分離、プロパティの設定を含むYAML形式で格納されたconfigの下の名前空間の定義では、構成センターでは、構成の動的な管理を実現するためにノードを変更することができます。
config
authentication # Sharding-Proxyパーミッション設定
props # 属性構成
schema # Schema
├ Γ¼ôsharding_db # SchemaName
├ ├ ├ ├ ├ ├ ├ ├ ├ ├ ├ ├ ├ ├ ├ ├datasource # データソース構成
├ ├ ├ ├ ├ ├ ├ ├ ├ ├ ├ ├ ├ ├ ├ ├rule # データスライシングルールの構成
├ Γ¼ômasterslave_db # SchemaName
├ ├ ├ ├ ├ ├ ├ ├ ├ ├ ├ ├ ├ ├ ├ ├datasource # データソース構成
├ ├ ├ ├ ├ ├ ├ ├ ├ ├ ├ ├ ├ ├ ├ ├rule # 読み書き分離ルール
設定/認証
password: root
username: root
設定/シャーディング/小道具
シャーディング・スフィア構成内のシャーディング・プロパティとは対照的です。
executor.size: 20
sql.show: true
config/schema/schemeName/datasource
異なるデータベース接続プールのプロパティの自己適応を持つ複数のデータベース接続プールのコレクション。
ds_0: !!org.apache.shardingsphere.orchestration.core.configuration.YamlDataSourceConfiguration
dataSourceClassName: com.zaxxer.hikari.HikariDataSource
properties:
url: jdbc:mysql://.1:3306/demo_ds_0?serverTimezone=UTC&useSSL=false
password: null
maxPoolSize: 50
maintenanceIntervalMilliseconds: 30000
connectionTimeoutMilliseconds: 30000
idleTimeoutMilliseconds: 60000
minPoolSize: 1
username: root
maxLifetimeMilliseconds:
ds_1: !!org.apache.shardingsphere.orchestration.core.configuration.YamlDataSourceConfiguration
dataSourceClassName: com.zaxxer.hikari.HikariDataSource
properties:
url: jdbc:mysql://.1:3306/demo_ds_1?serverTimezone=UTC&useSSL=false
password: null
maxPoolSize: 50
maintenanceIntervalMilliseconds: 30000
connectionTimeoutMilliseconds: 30000
idleTimeoutMilliseconds: 60000
minPoolSize: 1
username: root
maxLifetimeMilliseconds:
config/schema/sharding_db/rule
データスライシング構成(データスライシング+読み書き分離構成を含む)。
tables:
t_order:
actualDataNodes: ds_$->{0..1}.t_order_$->{0..1}
databaseStrategy:
inline:
shardingColumn: user_id
algorithmExpression: ds_$->{user_id % 2}
keyGenerator:
column: order_id
logicTable: t_order
tableStrategy:
inline:
shardingColumn: order_id
algorithmExpression: t_order_$->{order_id % 2}
t_order_item:
actualDataNodes: ds_$->{0..1}.t_order_item_$->{0..1}
databaseStrategy:
inline:
shardingColumn: user_id
algorithmExpression: ds_$->{user_id % 2}
keyGenerator:
column: order_item_id
logicTable: t_order_item
tableStrategy:
inline:
shardingColumn: order_id
algorithmExpression: t_order_item_$->{order_id % 2}
bindingTables:
- t_order,t_order_item
broadcastTables:
- t_config
defaultDataSourceName: ds_0
masterSlaveRules: {}
config/schema/masterslave/rule
この設定は、読み書き分離を単独で使用する場合に使用します。
name: ds_ms
masterDataSourceName: ds_master
slaveDataSourceNames:
- ds_slave0
- ds_slave1
loadBalanceAlgorithmType: ROUND_ROBIN
動的発効
レジストリ上の関連する設定の変更、削除、追加は、本番環境に動的にプッシュされ、即座に反映されます。



