shardingjdbc 实现读写分离
一般读写分离,主库做增删改等操作,从库做查询操作。如果查询多的话,可以配置一主多从。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 实现读写分离相关推荐
- Sharding-Jdbc 实现读写分离 + 分库分表,写得太好了!
欢迎关注方志朋的博客,回复"666"获面试宝典 来自:CSDN,作者:邋遢的流浪剑客 链接:https://blog.csdn.net/qq_40378034/article/de ...
- Sharding-Jdbc实现读写分离、分库分表,妙!
点击关注公众号,实用技术文章及时了解 1.概览 ShardingSphere-Jdbc定位为轻量级Java框架,在Java的Jdbc层提供的额外服务.它使用客户端直连数据库,以jar包形式提供服务,可 ...
- 三、Sharding-JDBC实现读写分离
一.Sharding-JDBC实现读写分离 1.1.读写分离概念 为了确保数据库产品的稳定性,很多数据库拥有双机热备功能.也就是,第一台数据库服务器,是对外提供增删改业务的生产服务器:第二台数据库服务 ...
- Sharding-jdbc教程:Springboot整合sharding-jdbc实现读写分离
点击上方"方志朋",选择"置顶公众号" 技术文章第一时间送达! Sharding-JDBC简介 Sharding-JDBC是的分布式数据库中间件解决方案.Sha ...
- Sharding-JDBC(实现读写分离)_Sharding-Sphere,Sharding-JDBC分布式_分库分表工作笔记014
然后我们再用sharding-jdbc来实现读写分离,关于 读写分离,其实很容易理解,就是我读操作去操作一个数据库 然后数据写操作,去操作另一个数据库. 因为我们知道实际应用中读操作比较多,而写操作, ...
- Sharding-JDBC之 读写分离
一.简介 Sharding-JDBC通过sql语句语义分析,当sql语句有insert.update.delete时,Sharding-JDBC就把这次操作在主数据库上执行:当sql语句有select ...
- Sharding-jdbc实现读写分离、分库分表
一.简介 Sharding-jdbc官网:http://shardingsphere.apache.org/ 1.概述 a.Sharding-jdbc是一个开源的分布式的关系型数据库中间件 b.Sha ...
- shardingsphere: SpringBoot整合shardingjdbc实现读写分离
文章目录 1. 引入jar包 2. 编写application.properties 3. 事务测试 3.1 测试代码 附录 1. 引入jar包 <dependency><group ...
- Sharding-JDBC教程:Spring Boot整合Sharding-JDBC实现数据分表+读写分离
点击上方"方志朋",选择"置顶公众号" 技术文章第一时间送达! 读写分离 在上一篇文章介绍了如何使用Sharing-JDBC实现数据库的读写分离.读写分离的好处 ...
最新文章
- c linux new使内存耗尽_C/C++的内存泄漏检测工具Valgrind memcheck的使用经历
- linux备份svn仓库脚本,SVN服务备份操作步骤分享
- JAVA【long值与ip地址互转】 - ip的判别
- [PY3]——字符串的分割、匹配、搜索方法总结
- hibernate java内存一次能取多少条_Hibernate管理Session和批量操作分析
- markdown表格在github/gitee中合并单元格
- 设置Jupyter notebook 默认工作路径,修改Jupyter notebook 默认浏览器为Chrome
- 使用JUnit和Repeat注​​释编写有效的负载测试
- Day7--误差反向传播
- 2000条你应知的WPF小姿势 基础篇40-44 启动关闭,Xaml,逻辑树
- 智慧景区管理系统提升游客服务体验
- RTL8762DK UART(二)
- 建立城市安防系统 打造更安全智慧城市
- 2022年信息安全工程师考试知识点:网络安全需求分析与基本设计
- 大学四年软件工程专业的学习回顾
- 中国房价不可能下降的19个理由
- 流氓软件强夺用户数据,马斯克截胡扎克伯格!
- oracle 转number日期,oracle number型日期转date型日期
- 群晖NAS搭建portainer
- 计算机夏令营英语自我介绍,夏令营英文自我介绍
热门文章
- [xms]西软xms试算平衡报表-穿透明细报表-增加储值卡卡号列
- Hi3519AV100 arm-himix200-linux-gcc 编译失败
- VUE+Highcharts气泡图
- py2neo——Neo4jpython的配合使用
- 蓝魔平板i9s刷机Android,蓝魔i9s从Windows 8.1系统刷回Android系统图文教程
- 影视列表(20211117更新)
- CSS中的z-index属性的使用
- jenkins 安装 SVN Publisher 后向 svn 提交代码报错: E170001: Authentication required for...
- MATLAB帝国(主义)竞争算法求解超市物流配送选址问题实例
- java 发送短信 多通道_一种Java卡多通道临时对象管理方法与流程