Maison  >  Article  >  Java  >  Introduction à l'intégration de la séparation de lecture et d'écriture Sharding-JDBC dans Spring Boot (avec code)

Introduction à l'intégration de la séparation de lecture et d'écriture Sharding-JDBC dans Spring Boot (avec code)

不言
不言avant
2019-03-12 15:46:332911parcourir

Cet article vous présente une introduction à l'intégration de la séparation de lecture et d'écriture Sharding-JDBC dans Spring Boot (avec code). Les amis dans le besoin peuvent s'y référer, j'espère. ça vous aide.

Auparavant, j'utilisais XML pour configurer la source de données, la stratégie de séparation en lecture-écriture, la stratégie de sous-base de données et de sous-table, etc. Un ami m'a également demandé auparavant s'il existait un moyen Spring Boot de le configurer Depuis que j'ai déjà utilisé Spring Boot, cela semble un peu incongru d'utiliser XML pour la configuration.

En fait, je pense personnellement que tant qu'il est utilisable, facile à lire et compréhensible, le SQL de mybatis n'est-il pas également écrit en XML ?

Aujourd'hui, je vais vous présenter l'utilisation de la méthode Spring Boot, expliquant principalement la configuration de la séparation en lecture et en écriture, et le reste sera présenté plus tard.

La méthode dite Spring Boot consiste à configurer directement les informations que nous avons mentionnées ci-dessus via des fichiers de propriétés ou des fichiers YAML.

Utilisez principalement le démarreur fourni par shardingjdbc, la configuration est la suivante :

<dependency>
    <groupId>io.shardingjdbc</groupId>
    <artifactId>sharding-jdbc-spring-boot-starter</artifactId>
    <version>2.0.0.M3</version>
</dependency>

Le contenu de la configuration est le suivant :

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
  • sharding. jdbc.config.masterslave.load-balance-algorithm-type

Algorithme d'équilibrage de charge pendant la requête Il existe actuellement 2 algorithmes, round_robin (polling) et random (aléatoire). shardingjdbc.core.api .algorithm.masterslave.MasterSlaveLoadBalanceAlgorithm. Les classes d'implémentation incluent RandomMasterSlaveLoadBalanceAlgorithm et RoundRobinMasterSlaveLoadBalanceAlgorithm.

  • sharding.jdbc.config.masterslave.master-data-source-name

Nom de la source de données principale

  • sharding.jdbc. config.masterslave.slave-data-source-names

À partir du nom de la source de données, séparez-en plusieurs par des virgules

C'est aussi simple que cela. Tout le processus est terminé. test de code L'effet de la séparation de la lecture et de l'écriture est évident. J'utilise mybatis ici. Le code est sur mon Github, je ne le publierai pas dans l'article car tout le monde le sait.


Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer