ShardingSphere介绍-创新互联

ShardingSphere产品介绍在这里插入图片描述

Apache ShardingSphere是一款分布式的数据库生态系统, 可以将任意数据库转换为分布式数据库,并通过数据分片、弹性伸缩、加密等能力对原有数据库进行增强。
设计哲学为Database Plus,旨在构建异构数据库上层的标准和生态。 它关注如何充分合理地利用数据库的计算和存储能力,而并非实现一个全新的数据库。 它站在数据库的上层视角,关注它们之间的协作多于数据库自身。
在这里插入图片描述
连接:打造数据库上层标准
通过对数据库协议、SQL 方言以及数据库存储的灵活适配,快速构建多模异构数据库上层的标准,同时通过内置 DistSQL 为应用提供标准化的连接方式。

成都创新互联主要为客户提供服务项目涵盖了网页视觉设计、VI标志设计、网络营销推广、网站程序开发、HTML5响应式网站建设成都手机网站制作、微商城、网站托管及网站建设维护、WEB系统开发、域名注册、国内外服务器租用、视频、平面设计、SEO优化排名。设计、前端、后端三个建站步骤的完善服务体系。一人跟踪测试的建站服务标准。已经为混凝土搅拌站行业客户提供了网站开发服务。

增强:数据库计算增强引擎
在原生数据库基础能力之上,提供分布式及流量增强方面的能力。前者可突破底层数据库在计算与存储上的瓶颈,后者通过对流量的变形、重定向、治理、鉴权及分析能力提供更为丰富的数据应用增强能力。

可插拔:构建数据库功能生态

在这里插入图片描述

Apache ShardingSphere的可插拔架构划分为3层,它们是:L1内核层、L2功能层、L3生态层。

L1 内核层
是数据库基本能力的抽象,其所有组件均必须存在,但具体实现方式可通过可插拔的方式更换。 主要包括查询优化器、分布式事务引擎、分布式执行引擎、权限引擎和调度引擎等。

L2 功能层
用于提供增量能力,其所有组件均是可选的,可以包含零至多个组件。 组件之间完全隔离,互无感知,多组件可通过叠加的方式相互配合使用。 主要包括数据分片、读写分离、数据库高可用、数据加密、影子库等。 用户自定义功能可完全面向Apache ShardingSphere定义的顶层接口进行定制化扩展,而无需改动内核代码。

L3 生态层
用于对接和融入现有数据库生态,包括数据库协议、SQL 解析器和存储适配器,分别对应于Apache ShardingSphere以数据库协议提供服务的方式、SQL 方言操作数据的方式以及对接存储节点的数据库类型。

ShardingSphere包含三个重要的产品,

ShardingJDBC、ShardingProxy和ShardingSidecar。其中sidecar是针对service mesh定位的一个分库分表插件,目前在规划中。而我们今天学习的重点是ShardingSphereJDBCProxy这两个组件。

  • ShardingJDBC是用来做客户端分库分表的产品,
  • ShardingProxy是用来做服务端分库分表的产品。

这两者定位有什么区别呢?我们看下官方资料中给出的两个重要的图:
在这里插入图片描述
shardingJDBC定位为轻量级 Java 框架,在 Java 的 JDBC 层提供的额外服务。

  • 使⽤客户端直连数据库;
  • jar 包形式提供服务,⽆需额外部署和依赖;
  • 可理解为增强版的 JDBC 驱动,完全兼容 JDBC 和各种 ORM 框架;
  • 支持任何第三方的数据库连接池,如:DBCP, C3P0, BoneCP, Druid, HikariCP等;
  • 支持任意实现JDBC规范的数据库。目前支持MySQL,Oracle,SQLServer,PostgreSQL以及任何遵循SQL92标准的数据库。

引入依赖

org.apache.shardingspheresharding-jdbc-spring-boot-starter4.1.1

ShardingProxy

ShardingSphere-Proxy 定位为透明化的数据库代理端,通过实现数据库二进制协议,对异构语言提供支持。 目前提供 MySQL 和 PostgreSQL 协议,透明化数据库操作,对 DBA 更加友好。

  • 向应用程序完全透明,可直接当做MySQL/PostgreSQL使用;
  • 兼容MariaDB等基于MySQL协议的数据库,以及openGauss等基于PostgreSQL协议的数据库;
  • 适用于任何兼容MySQL/PostgreSQL协议的的客户端,如:MySQL Command Client, MySQL Workbench, Navicat等。

那这两种方式有什么区别呢?
在这里插入图片描述
很显然,ShardingJDBC只是客户端的一个工具包,可以理解为一个特殊的JDBC驱动包,所有分库分表逻辑均由业务方自己控制,所以他的功能相对灵活,支持的数据库也非常多,但是对业务侵入大,需要业务方自己定制所有的分库分表逻辑。而ShardingProxy是一个独立部署的服务,对业务方无侵入,业务方可以像用一个普通的MySQL服务一样进行数据交互,基本上感觉不到后端分库分表逻辑的存在,但是这也意味着功能会比较固定,能够支持的数据库也比较少。这两者各有优劣。

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


名称栏目:ShardingSphere介绍-创新互联
URL分享:http://azwzsj.com/article/dggsgh.html