当前位置: 代码迷 >> 综合 >> 分库分表利器——sharding-sphere
  详细解决方案

分库分表利器——sharding-sphere

热度:100   发布时间:2023-09-19 23:41:14.0

简介

Sharding-Sphere是一套开源的分布式数据库中间件解决方案组成的生态圈,它由Sharding-JDBC、Sharding-Proxy和Sharding-Sidecar这3款相互独立的产品组成。他们均提供标准化的数据分片、读写分离、柔性事务和数据治理功能,可适用于如Java同构、异构语言、容器、云原生等各种多样化的应用场景。

官网

http://shardingjdbc.io/

Github

https://github.com/sharding-sphere

三大核心模块分别是Sharding-JDBC、Sharding-Proxy和Sharding-Sidecar。

Sharding-JDBC

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

分库分表利器——sharding-sphere

image

Sharding-Proxy

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

分库分表利器——sharding-sphere

image

Sharding-Sidecar

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

分库分表利器——sharding-sphere

image

sharding-sphere-example

在Github上分别有三个项目,分别是sharding-sphere、sharding-sphere-doc和sharding-sphere-example。从字面就可以看出每个项目是做什么的。

既然是要入门,那就clone下sharding-sphere-example这个项目。

1、克隆项目

在命令行执行git clone https://github.com/sharding-sphere/sharding-sphere-example.git

完成后,就可以看到sharding-sphere-example项目,导入intellij idea中。

2、编译项目

进入项目根目录下,编译项目。

我这边下载的项目sharding-sphere.version是3.0.0.M2-SNAPSHOT,编译的时候一直报该版本找不到,无法下载,去中央仓库也没有找到。

分库分表利器——sharding-sphere

image

想着可能要本地编译打包,所以就换成了3.0.0.M1版本,编译通过。

分库分表利器——sharding-sphere

image

3、配置数据源

因为是本机测试,所以在本地配置mysql数据库。

分库分表利器——sharding-sphere

image

4、编写数据分片代码

sharding-sphere-example项目中有基于不同场景包括spring-boot、jpa、mybatis的具体分库分表的实例代码。

本文主要结合sharding-sphere官方文档给出的数据分片代码讲解如何实现分库分表的。

测试类ShardingDataSource(自建测试类,来源http://shardingsphere.io/document/current/cn/manual/sharding-jdbc/usage/sharding/)

  相关解决方案