blog

ShardingSphere 4.x オーケストレーション・ガバナンスの構成センター

オーケストレーションガバナンスモジュールは、Configuration Centre/Registry、Configuration Dynamics、Database Meltdown Disable...

Aug 27, 2020 · 3 min. read
シェア

ナビゲーション

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

動的発効

レジストリ上の関連する設定の変更、削除、追加は、本番環境に動的にプッシュされ、即座に反映されます。

Read next

大学入試で理系女子に適した専攻は?

最近では、高校で理系科目を選択する女子も増えています。実際、男子よりも理系女子の方が向いている職業もあります。理系女子の専攻や職業選択の幅も非常に広い。しかし、女子の場合、家庭、場所、生活環境など、男子よりも考慮すべき点が多い。しかし、これは、女子にとって、専攻の面でも就職の面でも、自分のことを十分に理解できれば、制限要因にはなりません。

Aug 27, 2020 · 3 min read