资讯专栏INFORMATION COLUMN

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

kbyyd24 / 1135人阅读

摘要:今天就给大家介绍下方式的使用,主要讲解读写分离的配置,其余的后面再介绍。主要还是用提供的,配置如下配置内容如下主数据源从数据源读写分离配置查询时的负载均衡算法,目前有种算法,轮询和随机,算法接口是。

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

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

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

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

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

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


    io.shardingjdbc
    sharding-jdbc-spring-boot-starter
    2.0.0.M3

配置内容如下:

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.com/yinjihuan/...

欢迎加入我的知识星球,一起交流技术,免费学习猿天地的课程(http://cxytiandi.com/course)

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/73633.html

相关文章

  • Spring Boot整合Sharding-JDBC单库分表示例

    摘要:本文是采用方式配置第二篇,第一篇是读写分离讲解,请参考中整合读写分离示例在我微服务全栈技术与案例解析书中都是通过方式配置。多个表以逗号分隔,支持表达式。提供对语句中的和的分片操作支持。是必选的,用于处理和的分片。 本文是Sharding-JDBC采用Spring Boot Starter方式配置第二篇,第一篇是读写分离讲解,请参考:《Spring Boot中整合Sharding-JDB...

    rottengeek 评论0 收藏0
  • Sharding-Jdbc实现mysql分库分表

    摘要:实现数据库分库分表可以自己实现,也可以使用和实现。分布式数据库的自增不是自增的。分布式数据库分页查询需要使用插入时间实现。包含分库分片和读写分离功能。 Sharding-Jdbc实现mysql分库分表 简单介绍 数据库分库分表和读写分离区别,分库分表是在多个库建相同的表和同一个库建不同的表,根据随机或者哈希等方式查找实现。读写分离是为了解决数据库的读写性能不足,使用主库master进行...

    go4it 评论0 收藏0
  • Apollo:微服务架构下的配置管理

    摘要:比如使用的时候指定使用哪个环境的配置在微服务架构下,服务的数量会比之前的单体应用多,部署的节点数量也会很多。今天主要是讲下在中如何对接进行配置管理。 问题背景 在实际工作中,我们的开发环境,测试环境,生产环境对应的 Mysql 数据库,Redis 这些信息都不一样,每个环境都有对应的一套配置,在 Spring Boot 中我们通常会编写多个配置文件,也就是每个环境一个配置文件。 比如:...

    cloud 评论0 收藏0
  • MySQL 只能做小项目?松哥要说几句公道话!

    摘要:松哥上学那会,很多人对有一些偏见,偏见主要集中在以下几方面不支持事务事实上有表锁,但是效率比较低存储的数据量比较小,适合小项目,大项目还是得上等这么多年过去了,松哥自己在开发中一直是以为主,我觉得我有必要说两句公道话了。 松哥上学那会,很多人对 MySQL 有一些偏见,偏见主要集中在以下几方面: MySQL 不支持事务(事实上 MyISAM 有表锁,但是效率比较低) MySQL 存储...

    ixlei 评论0 收藏0

发表评论

0条评论

kbyyd24

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<