springboot統合shardingjdbcとtomcatjdbc

免責事項:この記事はブロガーオリジナル記事です、ソースを明記してください。https://blog.csdn.net/u010597819/article/details/88643318

シャーディング-JDBC 3.0.0、Tomcatの-JDBC 8.5.32:記事に基づいて、

springboot設定

  1. スタートを持つ親に依存した構成
<!--spring boot-->
  <parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.5.19.RELEASE</version>
    <relativePath/> <!-- lookup parent from repository -->
  </parent>
  <dependencies>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter</artifactId>
    </dependency>

    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-test</artifactId>
      <scope>test</scope>
    </dependency>
  1. AppContextをスキャンパスの構成等に配置され、ばね構成
@Configuration
@ImportResource(locations = { "classpath:spring/*" })
@PropertySource("classpath:config/tomcat-jdbc.properties")
@ComponentScan(basePackages = "org.gallant.data")
@MapperScan("org.gallant.data.sharding.jdbc.pool.mapper")
public class AppContext 
  1. 入口クラスを起動します。アプリケーション
@SpringBootApplication(exclude = DataSourceAutoConfiguration.class)
public class Application {

    public static void main(String[] args) throws InterruptedException {
        SpringApplication.run(Application.class, args);
        Thread.sleep(Integer.MAX_VALUE);
    }
}

このように単純なアプリケーションは、それが完了したspringboot

シャーディング-JDBC設定

公式文書の動作によれば、パス、廃棄処分のプロパティの使用は、導入する必要があります。シャーディング-JDBC-春ブート -starter 依存が、JARパッケージが最新のものである2.0.0.M3のみ、バージョン、および3.0.0との競合がありますYAML構成を使用することができる
複数のデータソースの方法であるとしてShardingDataSourceを構築する際に着信データ・ソースにのみYAMLサブライブラリーサブテーブルの構成規則をので、ここで、

  1. ルール:構造的な問題は、ブロガープロのテストが可能な構成を変更するためのケースYAMLを設定し、構造の古いバージョンの公式文書、それは、文句を言うでしょう
shardingRule:
  tables:
    gallant_order:
      actualDataNodes: ds${0..1}.gallant_order${0..1}
      databaseStrategy:
        inline:
          shardingColumn: user_id
          algorithmExpression: ds${user_id % 2}
      tableStrategy:
        inline:
          shardingColumn: city_id
          algorithmExpression: gallant_order${city_id % 2}
  1. コンフィギュレーションに依存
<!--sharding-jdbc-->
    <dependency>
      <groupId>io.shardingsphere</groupId>
      <artifactId>sharding-jdbc-core</artifactId>
      <version>3.0.0</version>
    </dependency>
  1. 建設データソースShardingDataSource
		@Bean
    public DataSource dataSource() throws SQLException, IOException {
        Resource resource = new ClassPathResource("config/sharding-jdbc.yml");
        Map<String, DataSource> dataSourceMap = new HashMap<>(2);
        // 数据源配置,也就是我们所使用的tomcat-jdbc连接池
        dataSourceMap.put("ds0", dataSource0());
        dataSourceMap.put("ds1", dataSource1());
        return YamlShardingDataSourceFactory.createDataSource(dataSourceMap, resource.getFile());
    }

Tomcatの-JDBC設定

  1. 接続プールに依存するが、もちろん、統合された春ブートJDBCと組み合わせて使用​​すること
		<dependency>
      <groupId>org.apache.tomcat</groupId>
      <artifactId>tomcat-jdbc</artifactId>
      <version>8.5.32</version>
    </dependency>
    <!--spring-data-jdbc-->
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-jdbc</artifactId>
      <version>1.5.4.RELEASE</version>
    </dependency>
  1. 接続プールの設定
mybatis.mapper-locations=classpath*:mapper-gallant/*Mapper*.xml

spring.datasource0.url=jdbc:mysql://localhost:3306/gallant?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&logger=com.mysql.jdbc.log.Slf4JLogger
spring.datasource0.username=gallant
spring.datasource0.password=gallant
spring.datasource0.driver-class-name=com.mysql.jdbc.Driver
spring.datasource0.timeBetweenEvictionRunsMillis=5000
spring.datasource0.removeAbandoned=true
spring.datasource0.removeAbandonedTimeout=5000
spring.datasource0.abandonWhenPercentageFull=0
spring.datasource0.logAbandoned=0
spring.datasource0.minEvictableIdleTimeMillis=0
spring.datasource0.testOnBorrow=false
spring.datasource0.testOnConnect=false
spring.datasource0.testOnReturn=false
spring.datasource0.testWhileIdle=true
spring.datasource0.validationQuery=SELECT 1
spring.datasource0.validationQueryTimeout=1
spring.datasource0.validationInterval=5000
spring.datasource0.logValidationErrors=true
spring.datasource0.maxActive=100
spring.datasource0.maxIdle=100
spring.datasource0.initialSize=10
spring.datasource0.maxWait=0
spring.datasource0.maxAge=3600000
spring.datasource0.jdbcInterceptors=org.apache.tomcat.jdbc.pool.interceptor.ConnectionState;org.apache.tomcat.jdbc.pool.interceptor.QueryTimeoutInterceptor(queryTimeout=1)

spring.datasource1.url=jdbc:mysql://localhost:3306/gallant1?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&logger=com.mysql.jdbc.log.Slf4JLogger
spring.datasource1.username=gallant
spring.datasource1.password=gallant
spring.datasource1.driver-class-name=com.mysql.jdbc.Driver
spring.datasource1.timeBetweenEvictionRunsMillis=5000
spring.datasource1.removeAbandoned=true
spring.datasource1.removeAbandonedTimeout=5000
spring.datasource1.abandonWhenPercentageFull=0
spring.datasource1.logAbandoned=0
spring.datasource1.minEvictableIdleTimeMillis=0
spring.datasource1.testOnBorrow=false
spring.datasource1.testOnConnect=false
spring.datasource1.testOnReturn=false
spring.datasource1.testWhileIdle=true
spring.datasource1.validationQuery=SELECT 1
spring.datasource1.validationQueryTimeout=1
spring.datasource1.validationInterval=5000
spring.datasource1.logValidationErrors=true
spring.datasource1.maxActive=100
spring.datasource1.maxIdle=100
spring.datasource1.initialSize=10
spring.datasource1.maxWait=0
spring.datasource1.maxAge=3600000
spring.datasource1.jdbcInterceptors=org.apache.tomcat.jdbc.pool.interceptor.ConnectionState;org.apache.tomcat.jdbc.pool.interceptor.QueryTimeoutInterceptor(queryTimeout=1)
  1. 接続プール・データ・ソースを作成します。
		@ConfigurationProperties(prefix = "spring.datasource0")
    @Bean
    public DataSource dataSource0(){
        return DataSourceBuilder.create().build();
    }

    @ConfigurationProperties(prefix = "spring.datasource1")
    @Bean
    public DataSource dataSource1(){
        return DataSourceBuilder.create().build();
    }

OK設定が完了し、ケースは簡単なデモ、シャーディング-JDBCとTomcat-JDBCでより詳細な設定がありますQuguanネットワーク、原則の特定のtomcat-JDBC実現は別のブロガーの記事を参照することができます見ることができます:HTTPS:// blog.csdn.net/u010597819/article/details/86646085
プロジェクトのソースアドレス:https://github.com/GallantKong/sharding-jdbc-pool

おすすめ

転載: blog.csdn.net/u010597819/article/details/88643318