当前位置:   article > 正文

ShardingSphere解决海量数据分库分表_shardingsphere 部分表不需要分表

shardingsphere 部分表不需要分表

Spring Boot 作为主流微服务框架,拥有成熟的社区生态。市场应用广泛,为了方便大家,整理了一个基于spring boot的常用中间件快速集成入门系列手册,涉及RPC、缓存、消息队列、分库分表、注册中心、分布式配置等常用开源组件,大概有几十篇文章,陆续会开放出来,感兴趣同学请提前关注&收藏

互联网高速发展,同时也带来的海量数据存储问题。传统关系型数据库的单库单表已经很难支撑,如何高效存储和访问这些数据,成为业内急需解决的问题。解决思路有两个方向:

  • NoSQL数据库,非关系型数据库,天然集成了类似分布式分片的功能,支持海量数据存储,但是不具备事务管理

  • 分库分表,对多个单库单表资源整合,并配备资源调度模块,从而形成一个具有海量数据储存的逻辑表。

今天我们主要介绍,如何基于Springboot快速集成分库分表框架,尽量做到开箱即用

当然除了ShardingSphere之外,还有其他分库分表框架,如:CobarMyCat

ShardingSphere介绍

ShardingSphere 是一套开源的分布式数据库中间件解决方案组成的生态圈,它由 3 款相互独立,却又能够混合部署配合使用的产品组成。它们均提供标准化的数据分片、分布式事务和数据库治理功能

ShardingSphere 由三个子项目组成,形成一个完整的数据库解决方案。

1、ShardingSphere-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,SQLServer和PostgreSQL。

2、ShardingSphere-Proxy:定位为透明化的数据库代理端,提供封装了数据库二进制协议的服务端版本,用于完成对异构语言的支持。目前提供 MySQL/PostgreSQL 版本,它可以使用任何兼容 MySQL/PostgreSQL 协议的访问客户端操作数据,对 DBA 更加友好。

3、ShardingSphere-Sidecar(规划中):定位为 Kubernetes 的云原生数据库代理,以 Sidecar 的形式代理所有对数据库的访问。通过无中心、零侵入的方案提供与数据库交互的的啮合层,即 Database Mesh,又可称数据网格。

优势:

  • 解决方案完备性,它集客户端分片、代理服务器,以及分布式数据库的核心功能于一身。

  • 开发友好性,提供了友好的集成方式,业务开发人员只需要引入一个 JAR 包就能在业务代码中嵌入数据分片、读写分离、分布式事务、数据库治理等一系列功能。

  • 可插拔的系统扩展性:它的很多核心功能均通过插件的形式提供,供开发者排列组合来定制属于自己的独特系统。

项目示例

首先,新建一个工程spring-boot-bulking-sharding-sphere,在pom.xml 文件中添加分库分表的 starter 依赖包

  1. <dependency>
  2.     <
声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号