好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

详解Spring Boot中整合Sharding-JDBC读写分离示例

在我《spring cloud微服务-全栈技术与案例解析》书中,第18章节分库分表解决方案里有对sharding-jdbc的使用进行详细的讲解。

之前是通过xml方式来配置数据源, 读写分离 策略,分库分表策略等,之前有朋友也问过我,有没有spring boot的方式来配置,既然已经用spring boot还用xml来配置感觉有点不协调。

其实吧我个人觉得只要能用,方便看,看的懂就行了,mybatis的sql不也是写在xml中嘛。

今天就给大家介绍下spring boot方式的使用,主要讲解读写分离的配置,其余的后面再介绍。

所谓的spring boot方式就是直接可以通过属性文件或者yaml文件来配置上面我们提到的那些信息。

主要还是用shardingjdbc提供的starter,配置如下:

?

1

2

3

4

5

<dependency>

   <groupid>io.shardingjdbc</groupid>

   <artifactid>sharding-jdbc-spring-boot-starter</artifactid>

   <version> 2.0 . 0 .m3</version>

</dependency>

配置内容如下:

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

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

查询时的负载均衡算法,目前有2种算法,round_robin(轮询)和random(随机),算法接口是io.shardingjdbc.core.api.algorithm.masterslave.masterslaveloadbalancealgorithm。实现类有randommasterslaveloadbalancealgorithm和roundrobinmasterslaveloadbalancealgorithm。

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

主数据源名称

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

从数据源名称,多个用逗号隔开

就是这么简单,整个流程结束,下面就是写代码测试读写分离的效果了,我这边用的mybatis,代码在我的github上,文章中就不贴出来了,大家都会。

参考代码: https://github测试数据/yinjihuan/spring-cloud/tree/master/fangjia-sjdbc-read-write-springboot

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

原文链接:https://segmentfault测试数据/a/1190000018455639

查看更多关于详解Spring Boot中整合Sharding-JDBC读写分离示例的详细内容...

  阅读:22次