Spring BootにおけるSharding-JDBCを統合した読み書き分離例を詳しく説明する。


私の『Spring Cloud微サービス-全スタック技術と事例解析』の本では、第18章分庫分表解決案の中にSharding-JDBCの使用について詳しく説明しています。
以前はXML方式でデータソースを配置していましたが、読み书き分离戦略、分库分表戦略などもありました。以前はSpring Bootの配置がありますか?
実は、個人的には使えて、読みやすくて、読めばいいと思います。mybatisのSQLもXMLに書いてあるのではないですか?
今日はSpring Bootの使い方を紹介します。読みと書きの分離の構成を説明します。あとは後で紹介します。
Spring Bootとは、プロパティファイルまたはYAMLファイルを通じて上記の情報を直接配置することができます。
主にsharrdingjdbcで提供されるstarterです。構成は以下の通りです。

<dependency>
  <groupId>io.shardingjdbc</groupId>
  <artifactId>sharding-jdbc-spring-boot-starter</artifactId>
  <version>2.0.0.M3</version>
</dependency>
設定内容は以下の通りです。

server.port=8084

mybatis.config-location=classpath:META-INF/mybatis-config.xml

sharding.jdbc.datasource.names=ds_master,ds_slave

#     
sharding.jdbc.datasource.ds_master.type=com.alibaba.druid.pool.DruidDataSource
sharding.jdbc.datasource.ds_master.driver-class-name=com.mysql.jdbc.Driver
sharding.jdbc.datasource.ds_master.url=jdbc:mysql://localhost:3306/ds_0?characterEncoding=utf-8
sharding.jdbc.datasource.ds_master.username=root
sharding.jdbc.datasource.ds_master.password=123456

#     
sharding.jdbc.datasource.ds_slave.type=com.alibaba.druid.pool.DruidDataSource
sharding.jdbc.datasource.ds_slave.driver-class-name=com.mysql.jdbc.Driver
sharding.jdbc.datasource.ds_slave.url=jdbc:mysql://localhost:3306/ds_1?characterEncoding=utf-8
sharding.jdbc.datasource.ds_slave.username=root
sharding.jdbc.datasource.ds_slave.password=123456

#       
sharding.jdbc.config.masterslave.load-balance-algorithm-type=round_robin
sharding.jdbc.config.masterslave.name=dataSource
sharding.jdbc.config.masterslave.master-data-source-name=ds_master
sharding.jdbc.config.masterslave.slave-data-source-names=ds_slave
  • sharrding.jdbc.co.fig.masterslavie.load-balanc-algorithm-type
  • クエリ時の負荷バランスアルゴリズムは、現在2つのアルゴリズムがあります。robin(ポーリング)とrandom(ランダム)、アルゴリズムインターフェースはio.sharrdingjdbc.co.appi.algorithm.masterslaveloadBalancAlgorithmです。実現クラスはRandomMaster SlaveLoadBalance AlgorithmとRoundRobinMaster SlaveLoadBalance Algorithmがあります。
  • sharrding.jdbc.co fig.masterslaave.master-data-source-name
  • メインデータソース名
  • sharrding.jdbc.com fig.masterslaave.slaave-data-source-names
  • データソース名から、コンマで区切られた複数のソース
    このように簡単です。全体の流れが終わりました。次はコードテストを書いて、読み、書き分けの効果を書きます。こちらで使っているmybatisはコードが私のGithubにあります。
    参考コード:https://github.com/yinjihuan/spring-cloud/tree/master/fangjia-sjdbc-read-write-springboot
    以上が本文の全部です。皆さんの勉強に役に立つように、私たちを応援してください。