シャーディングのSphere3.1.0下的springboot +ひかり

、ポンポン依存

<parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.4.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
<dependency>
      <groupId>io.shardingsphere</groupId>
      <artifactId>sharding-jdbc-spring-boot-starter</artifactId>
      <version>3.1.0</version>
 </dependency>

まず、設定ファイル

#数据库名称不可以带下划线:_,默认识别第一个DB
sharding.jdbc.datasource.names=springcloud,ds0,ds1

sharding.jdbc.datasource.springcloud.type=com.zaxxer.hikari.HikariDataSource
sharding.jdbc.datasource.springcloud.driver-class-name=com.mysql.cj.jdbc.Driver
sharding.jdbc.datasource.springcloud.jdbcUrl=jdbc:mysql://localhost:3306/springcloud
sharding.jdbc.datasource.springcloud.username=root
sharding.jdbc.datasource.springcloud.password=xiaochao

#数据库名称不可以带下划线:_,ds0可以,ds_0不可以,报错
sharding.jdbc.datasource.ds0.type=com.zaxxer.hikari.HikariDataSource
sharding.jdbc.datasource.ds0.driver-class-name=com.mysql.cj.jdbc.Driver
sharding.jdbc.datasource.ds0.jdbcUrl=jdbc:mysql://localhost:3306/ds_0
sharding.jdbc.datasource.ds0.username=root
sharding.jdbc.datasource.ds0.password=xiaochao

#数据库名称不可以带下划线:_,ds1可以,ds_1不可以,报错
sharding.jdbc.datasource.ds1.type=com.zaxxer.hikari.HikariDataSource
sharding.jdbc.datasource.ds1.driver-class-name=com.mysql.cj.jdbc.Driver
sharding.jdbc.datasource.ds1.jdbcUrl=jdbc:mysql://localhost:3306/ds_1
sharding.jdbc.datasource.ds1.username=root
sharding.jdbc.datasource.ds1.password=xiaochao

#这个配置是啥有待验证
sharding.jdbc.config.sharding.default-database-strategy.inline.sharding-column=user_id
sharding.jdbc.config.sharding.default-database-strategy.inline.algorithm-expression=ds$->{user_id % 2}

#数据库名称不可以带下划线:_,ds$可以,ds_$不可以,报错
sharding.jdbc.config.sharding.tables.t_order.actual-data-nodes=ds$->{0..1}.t_order_$->{0..1}
sharding.jdbc.config.sharding.tables.t_order.table-strategy.inline.sharding-column=order_id
sharding.jdbc.config.sharding.tables.t_order.table-strategy.inline.algorithm-expression=t_order_$->{order_id % 2}
sharding.jdbc.config.sharding.tables.t_order.key-generator-column-name=order_id
sharding.jdbc.config.sharding.tables.t_order_item.actual-data-nodes=ds$->{0..1}.t_order_item_$->{0..1}
sharding.jdbc.config.sharding.tables.t_order_item.table-strategy.inline.sharding-column=order_id
sharding.jdbc.config.sharding.tables.t_order_item.table-strategy.inline.algorithm-expression=t_order_item_$->{order_id % 2}
sharding.jdbc.config.sharding.tables.t_order_item.key-generator-column-name=order_item_id

#如果有关联表没配置绑定有可能会出现笛卡尔积
sharding.jdbc.config.sharding.binding-tables[0]=t_order,t_order_item
sharding.jdbc.config.sharding.props.sql.show=true

注意:

  1. ds_0、それ以外の場合はエラー:データベース名は、次のような名前を下線することはできませんした後
  2. 作っDB0ポイントが見つけるために、ライブラリサブテーブル構成、DB1ライブラリに移動します。
  3. sharding.jdbc.datasource.namesを見つけるために図書館に行く最初のサブライブラリーのサブテーブルをしませんでした。springcloudを

サブライブラリーおよび分散のサブテーブルのIDを生成するためのシャーディング、JDBCを使用してSpringBoot

ます。https://www.jianshu.com/p/0a08a854f1eaで再現

おすすめ

転載: blog.csdn.net/weixin_33796177/article/details/91173019