一般读写分离,主库做增删改等操作,从库做查询操作。如果查询多的话,可以配置一主多从。SHARDINGJDBC 最开始是由当当网开始的一个开源项目。由于反响好,直接进入 apache 的孵化项目,更名为 shareingsphere。

github 项目地址: https://github.com/apache/incubator-shardingsphere

一、准备工作

1,我们先在主库创建一个 user 表,插入一条记录

2,查询从库

3,为了方便操作,我们直接在客户端 navicat 上连接主从库

准备工作已经大致 ok 了…

进入正题

二、使用 spring boot 整合 shardingjdbc

1,pom 文件引入 shardingjdbc 的 jar

<dependency><groupId>org.apache.shardingsphere</groupId><artifactId>sharding-jdbc-spring-boot-starter</artifactId><version>4.0.0-RC1</version></dependency>

2,配置 application.yml 文件

spring:shardingsphere:props:sql:show: truedatasource:names: master,slave   #对应下面主从库master:type: com.alibaba.druid.pool.DruidDataSourcedriver-class-name: com.mysql.jdbc.Driverurl: jdbc:mysql://192.168.1.12:3306/www?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true&serverTimezone=Asia/Shanghaiusername: rootpassword: 123456slave:type: com.alibaba.druid.pool.DruidDataSourcedriver-class-name: com.mysql.jdbc.Driverurl: jdbc:mysql://192.168.1.8:3306/www?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true&serverTimezone=Asia/Shanghaiusername: rootpassword: 123456masterslave:load-balance-algorithm-type: round_robin  #负载 轮询,当你有多个从库或者主库时name: msmaster-data-source-name: master           #设置主库slave-data-source-names: slave            #设置从库

很简单吧,就加了些配置信息,SHARDINGSPHERE 会帮你自动切库,当你做增删改时,会直接操作主库,当你做查询操作时,会直接查询从库,这里数据库压力就可以平摊出来了而我们一般的系统都是增删改少,查询多,就可以多设置几个从库。

  • 查询所有
@Component
@SpringBootTest(classes = App.class)
@RunWith(SpringRunner.class)
public class ShardingJdbcTest {@Autowiredprivate InfoService infoService;@Testpublic void listInfo(){List<UserInfo> list = infoService.list();list.stream().forEach(r-> System.out.println(r.toString()));}
}

可以从日志看出,查询操作的是从库 slave

  • 插入一条数据
@Testpublic void addOneInfo(){UserInfo userInfo = new UserInfo();userInfo.setName("diku");userInfo.setPassword("888888");userInfo.setAge(17);userInfo.setSex("1");infoService.save(userInfo);}

可以从日志看出,新增操作的是主库 master

  • 查询刚刚插入的数据
@Testpublic void getOneInfoByName(){QueryWrapper<UserInfo> query = new QueryWrapper<>();query.eq("name","diku");UserInfo u = infoService.getOne(query);System.out.println(u);}

到这里,我们就基本实现了 spring boot 整合 shardingjdbc 的读写分离操作了。

原文 来自“码酱”公众号

shardingjdbc 实现读写分离相关推荐

  1. Sharding-Jdbc 实现读写分离 + 分库分表,写得太好了!

    欢迎关注方志朋的博客,回复"666"获面试宝典 来自:CSDN,作者:邋遢的流浪剑客 链接:https://blog.csdn.net/qq_40378034/article/de ...

  2. Sharding-Jdbc实现读写分离、分库分表,妙!

    点击关注公众号,实用技术文章及时了解 1.概览 ShardingSphere-Jdbc定位为轻量级Java框架,在Java的Jdbc层提供的额外服务.它使用客户端直连数据库,以jar包形式提供服务,可 ...

  3. 三、Sharding-JDBC实现读写分离

    一.Sharding-JDBC实现读写分离 1.1.读写分离概念 为了确保数据库产品的稳定性,很多数据库拥有双机热备功能.也就是,第一台数据库服务器,是对外提供增删改业务的生产服务器:第二台数据库服务 ...

  4. Sharding-jdbc教程:Springboot整合sharding-jdbc实现读写分离

    点击上方"方志朋",选择"置顶公众号" 技术文章第一时间送达! Sharding-JDBC简介 Sharding-JDBC是的分布式数据库中间件解决方案.Sha ...

  5. Sharding-JDBC(实现读写分离)_Sharding-Sphere,Sharding-JDBC分布式_分库分表工作笔记014

    然后我们再用sharding-jdbc来实现读写分离,关于 读写分离,其实很容易理解,就是我读操作去操作一个数据库 然后数据写操作,去操作另一个数据库. 因为我们知道实际应用中读操作比较多,而写操作, ...

  6. Sharding-JDBC之 读写分离

    一.简介 Sharding-JDBC通过sql语句语义分析,当sql语句有insert.update.delete时,Sharding-JDBC就把这次操作在主数据库上执行:当sql语句有select ...

  7. Sharding-jdbc实现读写分离、分库分表

    一.简介 Sharding-jdbc官网:http://shardingsphere.apache.org/ 1.概述 a.Sharding-jdbc是一个开源的分布式的关系型数据库中间件 b.Sha ...

  8. shardingsphere: SpringBoot整合shardingjdbc实现读写分离

    文章目录 1. 引入jar包 2. 编写application.properties 3. 事务测试 3.1 测试代码 附录 1. 引入jar包 <dependency><group ...

  9. Sharding-JDBC教程:Spring Boot整合Sharding-JDBC实现数据分表+读写分离

    点击上方"方志朋",选择"置顶公众号" 技术文章第一时间送达! 读写分离 在上一篇文章介绍了如何使用Sharing-JDBC实现数据库的读写分离.读写分离的好处 ...

最新文章

  1. c linux new使内存耗尽_C/C++的内存泄漏检测工具Valgrind memcheck的使用经历
  2. linux备份svn仓库脚本,SVN服务备份操作步骤分享
  3. JAVA【long值与ip地址互转】 - ip的判别
  4. [PY3]——字符串的分割、匹配、搜索方法总结
  5. hibernate java内存一次能取多少条_Hibernate管理Session和批量操作分析
  6. markdown表格在github/gitee中合并单元格
  7. 设置Jupyter notebook 默认工作路径,修改Jupyter notebook 默认浏览器为Chrome
  8. 使用JUnit和Repeat注​​释编写有效的负载测试
  9. Day7--误差反向传播
  10. 2000条你应知的WPF小姿势 基础篇40-44 启动关闭,Xaml,逻辑树
  11. 智慧景区管理系统提升游客服务体验
  12. RTL8762DK UART(二)
  13. 建立城市安防系统 打造更安全智慧城市
  14. 2022年信息安全工程师考试知识点:网络安全需求分析与基本设计
  15. 大学四年软件工程专业的学习回顾
  16. 中国房价不可能下降的19个理由
  17. 流氓软件强夺用户数据,马斯克截胡扎克伯格!
  18. oracle 转number日期,oracle number型日期转date型日期
  19. 群晖NAS搭建portainer
  20. 计算机夏令营英语自我介绍,夏令营英文自我介绍

热门文章

  1. [xms]西软xms试算平衡报表-穿透明细报表-增加储值卡卡号列
  2. Hi3519AV100 arm-himix200-linux-gcc 编译失败
  3. VUE+Highcharts气泡图
  4. py2neo——Neo4jpython的配合使用
  5. 蓝魔平板i9s刷机Android,蓝魔i9s从Windows 8.1系统刷回Android系统图文教程
  6. 影视列表(20211117更新)
  7. CSS中的z-index属性的使用
  8. jenkins 安装 SVN Publisher 后向 svn 提交代码报错: E170001: Authentication required for...
  9. MATLAB帝国(主义)竞争算法求解超市物流配送选址问题实例
  10. java 发送短信 多通道_一种Java卡多通道临时对象管理方法与流程