快速认识 Apache ShardingSphere 框架

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

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

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

Apache ShardingSphere 有三个产品,分别如下:

  • ShardingSphere-JDBC

    ShardingSphere-JDBC 定位为轻量级 Java 框架,在 Java 的 JDBC 层提供的额外服务。

  • ShardingSphere-Proxy

    ShardingSphere-Proxy 定位为透明化的数据库代理端,通过实现数据库二进制协议,对异构语言提供支持。

  • ShardingSphere-Agent

    ShardingSphere-Agent 是独立自主设计,基于 Bytebuddy 字节码增加的项目,基于插件化的设计,可以无缝隙的与 ShardingSphere 集成,目前有提供 log, metrics, traces 等可观测性功能,接下来还将实现使用 distSQL 来查询运行时的数据。

核心功能

  • 数据分片:ShardingSphere 基于底层数据库提供分布式数据库解决方案,可以水平扩展计算和存储。

  • 分布式事务:基于 XA 和 BASE 的混合事务引擎,ShardingSphere 提供在独立数据库上的分布式事务功能,保证跨数据源的数据安全。

  • 读写分离:基于对 SQL 语义理解及对底层数据库拓扑感知能力,ShardingSphere 提供灵活的读写流量拆分和读流量负载均衡。

  • 高可用:ShardingSphere 提供基于原生或 Kubernetes 环境下数据库集群的分布式高可用能力。

  • 数据迁移:ShardingSphere 提供跨数据源的数据迁移能力,并可支持重分片扩展。

  • 联邦查询:ShardingSphere 提供跨数据源的复杂查询分析能力,实现跨源的数据关联与聚合。

  • 数据加密:ShardingSphere 提供完整、透明、安全、低成本的数据加密解决方案。

  • 影子库:在全链路压测场景下,ShardingSphere 支持不同工作负载下的数据隔离,避免测试数据污染生产环境。

  • DistSQL:提供扩展 SQL 增强,可实现管理操作资源及插件能力。

版本演进

1.x —— 2016

Sharding-JDBC:初始版本,基于 JDBC 驱动,仅可进行分片。

2.x —— 2017

面向集群:引入 ZooKeeper 作为注册中心,提供分布式能力。

3.x —— 2018

Sharding-Proxy:ShardingSphere-Proxy 上线,提供 like-database 的访问能力。

4.x —— 2019

Apache ShardingSphere:正式进入 Apache 基金会,并兼容各种关系型数据库。

5.x —— 2021

可插拔:内核可插拔化多种功能,例如加密、分片都可灵活组合使用。

6.x ——

面向云:ShardingSphere 通过 Helm Chart 和 Operator 方式扩展到云端。通过这些方式可将 ShardingSphere 部署在 Kubernetes,包括 AWS EKS、minikube 及自有 Kuberneters。

7.x —— 

面向生态:Database Plus 理念实践化,通过 DistSQL 构建分布式可插拔生态。

游手好闲地学习,并不比学习游手好闲好。 —— 约翰·贝勒斯
0 不喜欢
说说我的看法 -
全部评论(
没有评论
关于
本网站专注于 Java、数据库(MySQL、Oracle)、Linux、软件架构及大数据等多领域技术知识分享。涵盖丰富的原创与精选技术文章,助力技术传播与交流。无论是技术新手渴望入门,还是资深开发者寻求进阶,这里都能为您提供深度见解与实用经验,让复杂编码变得轻松易懂,携手共赴技术提升新高度。如有侵权,请来信告知:hxstrive@outlook.com
公众号