ナビゲーション
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
動的発効
レジストリ上の関連する設定の変更、削除、追加は、本番環境に動的にプッシュされ、即座に反映されます。



