专业网站建设品牌,十四年专业建站经验,服务6000+客户--广州京杭网络
免费热线:400-963-0016      微信咨询  |  联系我们

springboot有哪些分库分表插件推荐_数据库

当前位置:网站建设 > 技术支持
资料来源:网络整理       时间:2023/3/5 14:48:44       共计:3595 浏览
springboot有哪些分库分表插件推荐?

可以通过Spring Boot+MyBatis+Sharding-JDBC实现分库分表。

Sharding-JDBC

Sharding-JDBC:定位为轻量级Java框架,在Java的JDBC层提供的额外服务。它使用客户端直连数据库,以jar包形式提供服务,无需额外部署和依赖,可理解为增强版的JDBC驱动,完全兼容JDBC和各种ORM框架。

适用于任何基于Java的ORM框架,如JPA、Hibernate、MyBatis、Spring JDBC Template或直接使用JDBC.基于任何第三方的数据库连接池,如DBCP、C3P0、BoneCP、Druid、HikariCP等。支持任意实现JDBC规范的数据库,如MySQL、Oracle、SQLSever和PostgreSQL以及任何遵循 SQL92 标准的数据库。sharding-jdbc架构

ShardingSphere-JDBC 采用无中心化架构,适用于 Java 开发的高性能的轻量级 OLTP 应用。

功能数据分片:分库和分表,读写分离,分布式主键;分布式事务;XA强一致事务,柔性事务;数据库治理;配置动态化,熔断和禁用,调用链路追踪;分库分表方式

分库分表方式分别为垂直分表、垂直分库、水平分表和水平分库。

垂直分表:把一个宽表的字段按访问频次、是否是大字段的原则拆分为多个表,这样可以使业务清晰,还能提升部分性能。拆分后,尽量从业务角度避免联查,否则性能方面将得不偿失。垂直分库:把多个表按照业务耦合松紧归类,分别存放不同的库,这些库可以分布不同服务器,从而使访问压力被多服务器负载,大大提升性能,同时能提高整体架构的业务清晰度,不同的业务库可根据自身情况定制优化方案。但是它需要解决跨库带来的所有复杂问题。水平分库:把一个表的数据(按数据行)分到多个不同的库,每个库只有这个表的部分数据,这些库可以分布在不同服务器,从而使访问压力被多个服务器负载,大大提升性能。它不仅需要解决跨库带来的所有复杂度问题,还要解决数据路由的问题。水平分表:把一个表的数据(按数据行)分到多个同一个数据库的多张表中,每个表只有这个表的部分数据,这样能小幅提升性能,它仅仅作为水平分库的一个补充优化。

一般来说,在系统设计阶段就应该根据业务耦合松紧来确定垂直分库和垂直分表方案,在数据量、访问压力不是特别大的情况,首先考虑缓存、读写分离、索引技术等方案。若数据量极大,且持续增长,再考虑水平分库和水平分表方案。

引入 maven 依赖

注意: 请将${latest.release.version}更改为实际的版本号。

规则配置

ShardingSphere-JDBC 可以通过 Java,YAML,Spring 命名空间和 Spring Boot Starter 这 4 种方式进行配置,开发者可根据场景选择适合的配置方式。

创建数据源

通过 ShardingSphereDataSourceFactory 工厂和规则配置对象获取 ShardingSphereDataSource。 该对象实现自 JDBC 的标准 DataSource 接口,可用于原生 JDBC 开发,或使用 JPA, MyBatis 等 ORM 类库。

官方中文文档:https://shardingsphere.apache.org/document/current/cn/overview/

如果解决了你的疑惑,请点点关注,谢谢支持。

版权说明:
本网站凡注明“广州京杭 原创”的皆为本站原创文章,如需转载请注明出处!
本网转载皆注明出处,遵循行业规范,如发现作品内容版权或其它问题的,请与我们联系处理!
欢迎扫描右侧微信二维码与我们联系。
·上一条:mysql查询学生表,电脑端有哪些特别好用的小工具_数据库 | ·下一条:mysql不能识别中文怎么解决_数据库

Copyright © 广州京杭网络科技有限公司 2005-2025 版权所有    粤ICP备16019765号 

广州京杭网络科技有限公司 版权所有