sharding-jdbc简介
现已更名为: sharding-sphere,官方网址如下 https://shardingsphere.apache.org/document/current/cn/overview/ 简单来说,最主要的可以做以下事情: 1.数据库读写分离 2.数据库分库分表 3.分布式事务 在今天的DEMO中, 我们一起来用shard-sphere来做数据库的读写分离 主要需要以下几步: 1.准备主从的数据库, 参考文章: https://www.javastudy.cloud/articles/2019/11/14/1573693221155.html 2.在springboot工程中,引入相应的mybatis和shard-spere的依赖 3.编写测试类
springboot+sharding-jdbc+HikariCP+mybatis做读写分离
添加依赖
implementation 'org.mybatis.spring.boot:mybatis-spring-boot-starter:2.1.1' runtimeOnly 'mysql:mysql-connector-java' // 这里多了一个shardingsphere的依赖 compile group: 'org.apache.shardingsphere', name: 'sharding-jdbc-spring-boot-starter', version: '4.0.0-RC3'
添加springboot的配置
# 这里我们有一主一从 spring.shardingsphere.datasource.names=master,slave0 # 主库的配置 spring.shardingsphere.datasource.master.type=com.zaxxer.hikari.HikariDataSource spring.shardingsphere.datasource.master.driver-class-name=com.mysql.cj.jdbc.Driver spring.shardingsphere.datasource.master.jdbcUrl=jdbc:mysql://localhost:33309/tools spring.shardingsphere.datasource.master.username=root spring.shardingsphere.datasource.master.password=javastudy # 从库的配置 spring.shardingsphere.datasource.slave0.type=com.zaxxer.hikari.HikariDataSource spring.shardingsphere.datasource.slave0.driver-class-name=com.mysql.cj.jdbc.Driver spring.shardingsphere.datasource.slave0.jdbcUrl=jdbc:mysql://localhost:33308/tools spring.shardingsphere.datasource.slave0.username=root spring.shardingsphere.datasource.slave0.password=javastudy # sharding-jdbc本身的一些配置 spring.shardingsphere.masterslave.name=ms spring.shardingsphere.masterslave.master-data-source-name=master spring.shardingsphere.masterslave.slave-data-source-names=slave0 spring.shardingsphere.props.sql.show=true
这里要注意, 主库和从库配置的第一行, datasource.master.type 这里, 要写HikariDataSource, 这样就可以使用HikariCP了 然后平常hikariCP和Mybatis的配置照常配置就可以了, 但是不在需要spring.datasource.url,spring.datasource.username
这些配置了
编写测试类
mybatis的mapper还是按原来的写法写, 然后我们使用autowire进行注入
@Autowired private ArticleMapper articleMapper; @Test public void testDataSource(){ List<ArticleDO> articleDOS = articleMapper.listArticles(new ArticleQC()); System.out.println(articleDOS); }
运行单元测试,可通过日志看出使用了hikariCP+sharding-jdbc
相关推荐
《使用ShardingJDBC5.1.1实现按月分库分表、读写分离与自动创表的全面实战》 在现代企业级应用中,数据量的快速增长使得数据库的性能优化成为至关重要的环节。ShardingJDBC作为一款轻量级的Java框架,能够有效地...
<groupId>io.shardingjdbc <artifactId>sharding-jdbc-spring-boot-starter <version>2.0.0.M3 ``` 然后,在 application.properties 文件中配置数据源和读写分离策略: ```properties server.port=8084 ...
springboot集成shardingJDBC实现读写分离demo工程,亲测可用 使用方式见博客:https://maoqizhi.blog.csdn.net/article/details/123149268?spm=1001.2014.3001.5502
在这个“使用sharding-jdbc快速实现自动读写分离-demo源码”中,我们将探讨如何利用Sharding-JDBC实现这一功能。 首先,我们需要理解Sharding-JDBC的基本原理。Sharding-JDBC作为一个数据库中间件,工作在JDBC层,...
sjdbc-read-write-springboot:Spring Boot版 Sharding JDBC 读写分离示列 sjdbc-db-sharding-springboot:Spring Boot版 Sharding JDBC 垂直拆分(不同的表在不同的库中) sjdbc-db-read-write-sharding-...
Sharding-JDBC教程:Spring Boot整合Sharding-JDBC实现分库分表+读写分离 Sharding-JDBC是阿里巴巴开源的关系型数据库中间件,提供了数据库分库分表、读写分离、数据库路由等功能。本教程将指导读者使用Sharding-...
1:多租户系统集成 2:集成shardingjdbc分库分表 3:集成shardingjdbc读写分离 4:集成人大金仓数据库 5:重写了JPA-saveandflush方法 6:修复了JPA更新数据为null的问题 7:解压后导入idea,创建数据库即可运行测试
为了提高数据库的读写性能,ShardingJDBC支持读写分离。它可以配置主库和从库,自动将读操作路由到从库,写操作则发送到主库,减轻了主库的压力。 **7. 分布式事务** 尽管ShardingJDBC不支持全局事务,但它提供了两...
《构建高性能分布式数据库系统:基于SpringMVC 4.3、MySQL 5.6与ShardingJDBC 1.4》 在当前的互联网时代,高性能、高可用、可扩展的数据库系统对于企业级应用至关重要。本文将深入探讨如何利用SpringMVC 4.3、MySQL...
Sharding-JDBC是一款开源的分布式JDBC层框架,它可以提供分库分表、读写分离、分布式主键、数据分片等功能。读写分离是一种数据库扩展方案,通过将写操作和读操作分开到不同的服务器来提高性能,让主服务器专门负责...
同时,它还提供了读写分离、事务管理、SQL解析等功能,帮助构建高性能的分布式数据库系统。 在实际使用中,还需要注意以下几点: - SQL兼容性:虽然Sharding-JDBC尽力保持SQL兼容性,但某些复杂的SQL可能无法在...
在这个“Sharding-JDBC实现读写分离demo”中,我们将深入探讨如何利用Sharding-JDBC来构建一个简单的读写分离系统。 首先,我们需要了解读写分离的基本概念。在高并发的Web应用中,为了保证数据的一致性和服务的...
它提供了一种透明化的数据分片、读写分离和分布式事务处理能力。在本案例中,我们将关注Sharding-JDBC,它是Java的轻量级JDBC驱动,无需额外中间件,只需在现有架构上通过jar包引入即可实现分库分表功能。 ### 2. ...
### Sharding-JDBC 教程:Spring Boot 整合 Sharding-JDBC 实现读写分离 #### 一、Sharding-JDBC 和 Spring Boot 的简介 **Sharding-JDBC** 是阿里巴巴开源的一个轻量级 Java 框架,主要用于对数据库进行分片、...
本项目"springboot-mybatisplus-shardingjdbc"正是一个针对这一需求的集成学习案例,它结合了SpringBoot的轻量级框架优势,MyBatisPlus的便捷数据库操作,以及Sharding-JDBC的数据分片功能,旨在提供一种高效、可...
在实际应用中,还需要考虑如事务一致性、读写分离、数据冗余和备份等更多问题,但ShardingJDBC已经为此提供了相应的解决方案,比如分布式事务的支持和读写分离的配置。总的来说,“ShardingJDBC-Demo”是一个很好的...
SpringBoot整合Sharding-JDBC是将Sharding-JDBC这一分布式数据库中间件与SpringBoot框架结合,以实现数据分片、读写分离等高级数据库管理功能。这个完整的代码示例覆盖了Sharding-JDBC的主要技术点,使开发者可以...
1、基于yml 配置方式 ,实现springBoot+sharding-jdbc+mybatis-plus 实现分库分表,读写分离,以及全局表,子表的配置。 2、实现mybatis-plus 整合到springboot 详细使用请看 测试用例
Sharding-JDBC是阿里巴巴开源的一款轻量级的数据库中间件,它无需额外的服务部署,可以直接嵌入到Java应用中,提供数据库分片、读写分离等功能。 【描述】中的"按月动态分表"是指根据时间字段(如订单日期)将数据...
3. 支持读写分离:自动将读操作导向从库,写操作导向主库,提高系统性能。 4. 分布式事务支持:提供了基于X/Open XA的分布式事务解决方案。 5. 兼容性:ShardingJDBC作为一个JDBC驱动,兼容各种ORM框架,如MyBatis。...