经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » Java相关 » Spring Boot » 查看文章
详解Spring Boot中整合Sharding-JDBC读写分离示例
来源:jb51  时间:2019/3/12 8:37:52  对本文有异议

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

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

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

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

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

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

  1. <dependency>
  2. <groupId>io.shardingjdbc</groupId>
  3. <artifactId>sharding-jdbc-spring-boot-starter</artifactId>
  4. <version>2.0.0.M3</version>
  5. </dependency>

配置内容如下:

  1. server.port=8084
  2.  
  3. mybatis.config-location=classpath:META-INF/mybatis-config.xml
  4.  
  5. sharding.jdbc.datasource.names=ds_master,ds_slave
  6.  
  7. # 主数据源
  8. sharding.jdbc.datasource.ds_master.type=com.alibaba.druid.pool.DruidDataSource
  9. sharding.jdbc.datasource.ds_master.driver-class-name=com.mysql.jdbc.Driver
  10. sharding.jdbc.datasource.ds_master.url=jdbc:mysql://localhost:3306/ds_0?characterEncoding=utf-8
  11. sharding.jdbc.datasource.ds_master.username=root
  12. sharding.jdbc.datasource.ds_master.password=123456
  13.  
  14. # 从数据源
  15. sharding.jdbc.datasource.ds_slave.type=com.alibaba.druid.pool.DruidDataSource
  16. sharding.jdbc.datasource.ds_slave.driver-class-name=com.mysql.jdbc.Driver
  17. sharding.jdbc.datasource.ds_slave.url=jdbc:mysql://localhost:3306/ds_1?characterEncoding=utf-8
  18. sharding.jdbc.datasource.ds_slave.username=root
  19. sharding.jdbc.datasource.ds_slave.password=123456
  20.  
  21. # 读写分离配置
  22. sharding.jdbc.config.masterslave.load-balance-algorithm-type=round_robin
  23. sharding.jdbc.config.masterslave.name=dataSource
  24. sharding.jdbc.config.masterslave.master-data-source-name=ds_master
  25. 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.com/yinjihuan/spring-cloud/tree/master/fangjia-sjdbc-read-write-springboot

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

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号