【ShardingSphere】ShardingSphere概览

news/2024/5/18 23:26:29 标签: ShardingSphere, JDBC, 数据分片, 分表, 分库

该文章摘抄自:https://shardingsphere.apache.org/document/current/cn/overview/。不支持转载

简介

Apache ShardingSphere 是一套开源的分布式数据库解决方案组成的生态圈,主要有三部分组成(这里以)

能够独立部署,又支持混合部署配合使用的产品组成。 它们均提供标准化的数据水平扩展、分布式事务和分布式治理等功能,可适用于如 Java 同构、异构语言、云原生等各种多样化的应用场景。

Apache ShardingSphere 旨在充分合理地在分布式的场景下利用关系型数据库的计算和存储能力,而并非实现一个全新的关系型数据库。 关系型数据库当今依然占有巨大市场份额,是企业核心系统的基石,未来也难于撼动,我们更加注重在原有基础上提供增量,而非颠覆。

Apache ShardingSphere 5.x 版本开始致力于可插拔架构,项目的功能组件能够灵活的以可插拔的方式进行扩展。 目前,数据分片、读写分离、数据加密、影子库压测等功能,以及对 MySQL、PostgreSQL、SQLServer、Oracle 等 SQL 与协议的支持,均通过插件的方式织入项目。 开发者能够像使用积木一样定制属于自己的独特系统。Apache ShardingSphere 目前已提供数十个 SPI 作为系统的扩展点,而且仍在不断增加中。

ShardingSphereJDBC_14">ShardingSphere-JDBC

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

  • 适用于任何基于 JDBC 的 ORM 框架,如:JPA, Hibernate, Mybatis, Spring JDBC Template 或直接使用 JDBC
  • 支持任何第三方的数据库连接池,如:DBCP, C3P0, BoneCP, Druid, HikariCP 等。
  • 支持任意实现 JDBC 规范的数据库,目前支持 MySQL,Oracle,SQLServer,PostgreSQL 以及任何遵循 SQL92 标准的数据库。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-b8GS8Xa1-1619001580058)(https://shardingsphere.apache.org/document/current/img/shardingsphere-jdbc-brief.png)]

ShardingSphereProxy_22">ShardingSphere-Proxy

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

  • 向应用程序完全透明,可直接当做 MySQL/PostgreSQL 使用。
  • 适用于任何兼容 MySQL/PostgreSQL 协议的的客户端。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Yox1hFww-1619001580061)(https://shardingsphere.apache.org/document/current/img/shardingsphere-proxy-brief.png)]

ShardingSphereSidecarTODO_29">ShardingSphere-Sidecar(TODO)

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

Database Mesh 的关注重点在于如何将分布式的数据访问应用与数据库有机串联起来,它更加关注的是交互,是将杂乱无章的应用与数据库之间的交互进行有效地梳理。 使用 Database Mesh,访问数据库的应用和数据库终将形成一个巨大的网格体系,应用和数据库只需在网格体系中对号入座即可,它们都是被啮合层所治理的对象。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PlLgLw3m-1619001580063)(https://shardingsphere.apache.org/document/current/img/shardingsphere-sidecar-brief.png)]

ShardingSphere-JDBCShardingSphere-ProxyShardingSphere-Sidecar
数据库任意MySQL/PostgreSQLMySQL/PostgreSQL
连接消耗数
异构语言仅 Java任意任意
性能损耗低损耗略高损耗低
无中心化
静态入口

混合架构
ShardingSphere-JDBC 采用无中心化架构,适用于 Java 开发的高性能的轻量级 OLTP 应用;ShardingSphere-Proxy 提供静态入口以及异构语言的支持,适用于 OLAP 应用以及对分片数据库进行管理和运维的场景。

Apache ShardingSphere 是多接入端共同组成的生态圈。 通过混合使用 ShardingSphere-JDBCShardingSphere-Proxy,并采用同一注册中心统一配置分片策略,能够灵活的搭建适用于各种场景的应用系统,使得架构师更加自由地调整适合与当前业务的最佳系统架构。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HnD9llJh-1619001580065)(https://shardingsphere.apache.org/document/current/img/shardingsphere-hybrid.png)]

功能列表

数据分片
  • 分库 & 分表
  • 读写分离
  • 分片策略定制化
  • 无中心化分布式主键
分布式事务
  • 标准化事务接口
  • XA 强一致事务
  • 柔性事务
数据库治理
  • 分布式治理
  • 弹性伸缩
  • 可视化链路追踪
  • 数据加密

该文章摘抄自:https://shardingsphere.apache.org/document/current/cn/overview/。不支持转载


http://www.niftyadmin.cn/n/1638659.html

相关文章

Oracle基础命令入门

1.windows10安装Oracle 19 https://www.oracle.com/database/technologies/oracle-database-software-downloads.html 中间安装过程省略,可查看其他博客。 2.安装PL/SQL https://www.allroundautomations.com/registered-plsqldev/ 当Oracle是最新的&#xff0c…

【ShardingSphere】做优化上来就分库分表?请慎重分库分表

分库分表、分区能解决很多的问题,这也是我们在优化的时候常常听到的一些可行的方案,不过提到优化就来分库分表是不是不太合适,本文所阐述的就是分库分表、分区,什么时候用,应该怎么用,怎么选择。 话题起点 …

wm8976声卡芯片的外部引脚分析

1、WM8976外部引脚图 2、引脚描述表 3、重点关注引脚(由于I2S部分程序一样,只需修改控制部分的程序) (1)控制部分(2440的GPIO接口)(控制接口和芯片的寄存器不一样) L3M…

为什么我的项目打不开呀,请帮忙

我现在用的是vs2002,打开一个项目,会出现下面这么一句话“无法读取项目文件“某某.csproj”,项目文件已被重名或已不在解决方案中”这一项目是在vs2003下编写的,是不是说vs2003编写的在vs2002是打不开的?转载于:https://www.cnblo…

Oracle pl/sql编程语言基本命令入门

pl/sql编程语言 pl/sql编程语言用于存储过程和存储函数 声明方法 declare 申明字段 begin 业务处理 end; 例子: -- 声明方法 declarei number(2) : 10;s varchar2(10) : 小明;ena emp.ename%type;-- 引用型变量emprow emp%rowtype;-- 记录型变量 begindbms_outpu…

wm8976的初始化函数、写寄存器函数和音量控制函数分析

1、wm8976的写寄存器函数 (1.1)时序图 (1.2)函数 static void wm8976_write_reg(unsigned char reg, unsigned int data) { int i; //对于wm8976来说,传输的是16位数据,这16位数据里面,高七位…

【ShardingSphere】shardingjdbc入门案例-springboot整合shardingjdbc

该教程仅仅适用于4.x版本,在ShardingSphere的迭代历史中很多的配置和兼容问题很大,这里入手一定要注意版本。 构建一个SpringBoot项目 SpringBoot项目的构建这里不再赘述,这里要提及的一点就是我们构建的时候,基本不需要引入依赖…

HttpClient和jsoup基础API使用

准备配置 pom <dependencies><!-- https://mvnrepository.com/artifact/org.apache.httpcomponents/httpclient --><dependency><groupId>org.apache.httpcomponents</groupId><artifactId>httpclient</artifactId><version>…