Maison > Java > javaDidacticiel > 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)

不言
Libérer: 2019-03-12 15:46:44
avant
3003 Les gens l'ont consulté

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>
Copier après la connexion

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
Copier après la connexion
  • 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!

Étiquettes associées:
source:segmentfault.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal