详解Spring Boot中整合Sharding

网友投稿 275 2023-01-12


详解Spring Boot中整合Sharding

在我《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=clhttp://asspath: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

主数wNKXhfc据源名称

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

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

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

参考代码:https://github.com/yinjihuan/spring-cloud/tree/master/fangjia-sjdbc-read-write-springboot


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Java中递归、循环的优劣分析
下一篇:研发管理平台文案视频(研发 文案)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~