签到成功

知道了

CNDBA社区CNDBA社区

ShardingSphere 概述

2023-02-18 12:32 1172 0 转载 openGauss
作者: dave

1. ShardingSphere 说明

Apache ShardingSphere 是一款分布式的数据库生态系统, 可以将任意数据库转换为分布式数据库,并通过数据分片、弹性伸缩、加密等能力对原有数据库进行增强。

官方如下:http://www.cndba.cn/dave/article/116444

https://shardingsphere.apache.org/index_zh.html

ShardingSphere 项目由当当捐入Apache,并在京东数科逐渐发展壮大,成为业界首个 Apache 分布式数据库中间件项目。ShardingSphere 已经在 2020 年 4 月 16 日成为 Apache 顶级项目(Apache官方发布从 4.0.0 版本开始)。

http://www.cndba.cn/dave/article/116444

Apache ShardingSphere 设计哲学为 Database Plus,旨在构建异构数据库上层的标准和生态。 它关注如何充分合理地利用数据库的计算和存储能力,而并非实现一个全新的数据库。 它站在数据库的上层视角,关注它们之间的协作多于数据库自身。该理念致力于构建数据库上层的标准和生态,在生态中补充数据库所缺失的能力。

ShardingSphere 有两种部署形态:
  1. ShardingSphere-JDBC:定位为轻量级 Java 框架,在 Java 的 JDBC 层提供的额外服务。
  2. ShardingSphere-Proxy:定位为透明化的数据库代理端,通过实现数据库二进制协议,对异构语言提供支持。

2. 产品功能

特性 定义
数据分片 数据分片,是应对海量数据存储与计算的有效手段。ShardingSphere 基于底层数据库提供分布式数据库解决方案,可以水平扩展计算和存储。
分布式事务 事务能力,是保障数据库完整、安全的关键技术,也是数据库的核心技术。基于 XA 和 BASE 的混合事务引擎,ShardingSphere 提供在独立数据库上的分布式事务功能,保证跨数据源的数据安全。
读写分离 读写分离,是应对高压力业务访问的手段。基于对 SQL 语义理解及对底层数据库拓扑感知能力,ShardingSphere 提供灵活的读写流量拆分和读流量负载均衡。
高可用 高可用,是对数据存储计算平台的基本要求。ShardingSphere 提供基于原生或 Kubernetes 环境下数据库集群的分布式高可用能力。
数据迁移 数据迁移,是打通数据生态的关键能力。ShardingSphere 提供跨数据源的数据迁移能力,并可支持重分片扩展。
联邦查询 联邦查询,是面对复杂数据环境下利用数据的有效手段。ShardingSphere 提供跨数据源的复杂查询分析能力,实现跨源的数据关联与聚合。
数据加密 数据加密,是保证数据安全的基本手段。ShardingSphere 提供完整、透明、安全、低成本的数据加密解决方案。
影子库 在全链路压测场景下,ShardingSphere 支持不同工作负载下的数据隔离,避免测试数据污染生产环境。

3. 产品优势

极致性能
驱动程序端历经长年打磨,效率接近原生 JDBC,性能极致。http://www.cndba.cn/dave/article/116444

生态兼容
代理端支持任何通过 MySQL/PostgreSQL 协议的应用访问,驱动程序端可对接任意实现 JDBC 规范的数据库。

业务零侵入
面对数据库替换场景,ShardingSphere 可满足业务无需改造,实现平滑业务迁移。

运维低成本
在保留原技术栈不变前提下,对 DBA 学习、管理成本低,交互友好。http://www.cndba.cn/dave/article/116444http://www.cndba.cn/dave/article/116444

安全稳定
基于成熟数据库底座之上提供增量能力,兼顾安全性及稳定性。http://www.cndba.cn/dave/article/116444

弹性扩展
具备计算、存储平滑在线扩展能力,可满足业务多变的需求。http://www.cndba.cn/dave/article/116444

开放生态
通过多层次(内核、功能、生态)插件化能力,为用户提供可定制满足自身特殊需求的独有系统。

4. 部署形态

Apache ShardingSphere 由 ShardingSphere-JDBC 和 ShardingSphere-Proxy 这 2 款既能够独立部署,又支持混合部署配合使用的产品组成。 它们均提供标准化的基于数据库作为存储节点的增量功能,可适用于如 Java 同构、异构语言、云原生等各种多样化的应用场景。http://www.cndba.cn/dave/article/116444

1.ShardingSphere-JDBC 独立部署

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

  1. 适用于任何基于 JDBC 的 ORM 框架,如:JPA, Hibernate, Mybatis, Spring JDBC Template 或直接使用 JDBC;
  2. 支持任何第三方的数据库连接池,如:DBCP, C3P0, BoneCP, HikariCP 等;
  3. 支持任意实现 JDBC 规范的数据库,目前支持 MySQL,PostgreSQL,Oracle,SQLServer 以及任何可使用 JDBC 访问的数据库。

2.ShardingSphere-Proxy 独立部署

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

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

3.两种形态对比

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

分布式数据库中间件:MyCat 和 ShardingSphere 对比说明

http://www.cndba.cn/dave/article/116444
http://www.cndba.cn/dave/article/116444

https://www.cndba.cn/dave/article/108034

用户评论
* 以下用户言论只代表其个人观点,不代表CNDBA社区的观点或立场
dave

dave

关注

人的一生应该是这样度过的:当他回首往事的时候,他不会因为虚度年华而悔恨,也不会因为碌碌无为而羞耻;这样,在临死的时候,他就能够说:“我的整个生命和全部精力,都已经献给世界上最壮丽的事业....."

  • 2283
    原创
  • 3
    翻译
  • 579
    转载
  • 196
    评论
  • 访问:8164951次
  • 积分:4428
  • 等级:核心会员
  • 排名:第1名
精华文章
    最新问题
    查看更多+
    热门文章
      热门用户
      推荐用户
        Copyright © 2016 All Rights Reserved. Powered by CNDBA · 皖ICP备2022006297号-1·

        QQ交流群

        注册联系QQ