Apache ShardingSphere:由开源驱动的分布式数据库中间件生态

本文涉及的产品
云原生网关 MSE Higress,422元/月
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
性能测试 PTS,5000VUM额度
简介: 2021 年 7 月 21 日 2021 亚马逊云科技中国峰会现场,SphereEx 联合创始人、Apache ShardingSphere PMC 潘娟受邀参与此次峰会,以《Apache ShardingSphere 分布式数据库中间件开源生态构建》为主题,围绕开源理念扩散、社区建设、ShardingSphere 如何践行 Apache Way 等方面展开了介绍,本文总结自潘娟内容分享。

**01
在数据库之上与业务之下的新生态
一层贴近应用,一层贴近 DataBase。**

不同的行业、不同的用户、不同的定位、不同的需求....如今的数据库面临着比过去更加复杂的数据应用场景以及愈发个性化和定制化的数据处理需求。愈发苛刻的生产环境,也在推动着不同的数据库不断将数据读写速度、延时、吞吐量等性能指标发挥到极致。

久而久之,分工明确的数据应用场景逐渐导致了数据库市场的碎片化,且难以出现一款能够完美适配所有场景的数据库。在不同的业务场景下选择不同的数据库,已经成为一种常见的企业选型方法。

但同样,这种百花齐放的数据库形态,也会带来『百花齐放』的问题。但从宏观的角度来看,这些问题之间是存在共性的,是可以被抽离出来并形成一套事实标准的。如果能够在这些百花齐放的数据库之上构建能够统一应用管理数据的平台层,就可以在屏蔽底层数据库差异的前提下,按照固定标准来进行开发,这种标准化解决方案将会极大缩减用户管理基础数据设施的压力和学习成本。

Apache ShardingSphere 就是位于这一层,通过复用原有数据库的能力,能够帮助技术团队在此之上实现如分片、加密解密等增量能力的开发,且向下不需考虑底层数据库的配置,向上又能够屏蔽用户感知,从而快速构建起面向业务的数据库直连能力,轻松管理大规模的数据集群。

**02
如何践行 Apache Way
Sharding**

ShardingSphere 可同时叠加使用多个功能来满足用户的多样化需求。

随着业务体量的增大,单体数据库难以支撑大体量业务时,就有必要对数据库进行横向扩展,这就必然要面临着分布式管理的问题。ShardingSphere 通过在数据库之上构建一层热插拔功能层,并提供传统数据库的操作模式,屏蔽使用者对底层数据库变化的感知,赋予开发者使用单体数据库的方式来管理大规模数据库集群的能力。其中,ShardingSphere 主要包含以下四种应用场景:

Sharding 策略

业务体量增大时,所面临的数据分片压力就会随之增加,所对应的分片策略相应就会被设计的更加复杂。ShardingSphere 能够以灵活、易扩展的方式,以最低成本协助用户在原本水平扩展之外做更多的分片策略,同时也支持自定义扩展的能力。

读写分离

通常情况下实现主从部署能够有效缓解数据库的压力,但如果某一个集群下的机器或库表出现问题,无法进行正常读写操作,就会对业务造成比较大的影响。为避免业务不可用,通常需要开发者重新写一套高可用的策略来实现读写库表的主从切换。ShardingSphere 可以自动探索所有集群的状态,在第一时间发现请求不可靠、底层数据库发生主从切换等问题,并可以在表层用户没有产生感知的前提下自动恢复主从状态。

Sharding Scaling

随着业务的增长,可能会需要对此前拆分过的数据集群进行再一次拆分。ShardingSphere 配套的 Scaling 组件,只需一条 SQL 命令就可以启动任务,并在后台实时展示运行状态。通过 Scaling 这种『管道』,使旧的数据库生态和新的数据库生态重新连接起来。

数据加解密

在数据库的应用中,对于关键数据的加解密也是非常重要的一部分。如果原有系统监控能力不达标,部分敏感数据可能是以明文的状态存储的,后期需要对其进行加密处理,这是许多团队普遍存在的问题。ShardingSphere 通过对这部分能力进行标准化并集成在中间件生态上,自动化用户对新、旧业务的数据脱敏以及加解密的过程,整个过程实现了用户层面的无感知。同时支持多种内置的数据加解密/脱敏算法,用户也可根据自身情况来自定义扩展相应的数据算法。

构造数据的接入神经:可插拔的 Database Plus 平台

面对各种各样的需求以及使用场景,ShardingSphere 为不同领域的开发者提供了面向 Java 的 JDBC、面向异构的代理端以及面向上云的 Sidecar 端这三种接入形式,用户可以按具体需求来做选型,在原有集群之上来做分片、读写分离、数据迁移等相关操作。

JDBC 接入:完全以 JDBC 的方式去使用,可以理解为一款增强的 JDBC 驱动程序,完全兼容 JDBC 和各种 ORM 框架,不需额外的部署和依赖即能够实现分布式管理、水平拓展、脱敏等一系列操作;

Proxy 接入:以模拟数据库服务的形式,通过 Proxy 来管理底层真实的数据库集群,基本无需对业务进行改造;

云上 mesh 接入:为 ShardingSphere 提供公有云上的部署形式。在云上,目前 SphereEx 已经加入了亚马逊云科技的云创计划,后续会在中国区和海外陆续在 Marketplace 与亚马逊云科技展开深度合作,为亚马逊云科技上的用户提供更加强大的 Proxy 镜像部署能力,共同为企业应用打造更加成熟的云上环境。

如果你想开发小程序或者APP的话,可以通过第三方专业开发平台,来帮助你实现开发需求:厦门在乎科技-专注厦门小程序开发公司、app开发、网站开发

相关文章
|
1月前
|
关系型数据库 MySQL Java
【IDEA】java后台操作mysql数据库驱动常见错误解决方案
【IDEA】java后台操作mysql数据库驱动常见错误解决方案
58 0
|
13天前
|
存储 人工智能 Cloud Native
云栖重磅|从数据到智能:Data+AI驱动的云原生数据库
在9月20日2024云栖大会上,阿里云智能集团副总裁,数据库产品事业部负责人,ACM、CCF、IEEE会士(Fellow)李飞飞发表《从数据到智能:Data+AI驱动的云原生数据库》主题演讲。他表示,数据是生成式AI的核心资产,大模型时代的数据管理系统需具备多模处理和实时分析能力。阿里云瑶池将数据+AI全面融合,构建一站式多模数据管理平台,以数据驱动决策与创新,为用户提供像“搭积木”一样易用、好用、高可用的使用体验。
云栖重磅|从数据到智能:Data+AI驱动的云原生数据库
|
3月前
|
存储 缓存 监控
分布式链路监控系统问题之kywalking在后期维护过程中可能会遇到中间件版本升级的问题如何解决
分布式链路监控系统问题之kywalking在后期维护过程中可能会遇到中间件版本升级的问题如何解决
|
7天前
|
消息中间件 监控 数据可视化
Apache Airflow 开源最顶级的分布式工作流平台
Apache Airflow 是一个用于创作、调度和监控工作流的平台,通过将工作流定义为代码,实现更好的可维护性和协作性。Airflow 使用有向无环图(DAG)定义任务,支持动态生成、扩展和优雅的管道设计。其丰富的命令行工具和用户界面使得任务管理和监控更加便捷。适用于静态和缓慢变化的工作流,常用于数据处理。
Apache Airflow 开源最顶级的分布式工作流平台
|
7天前
|
SQL 关系型数据库 MySQL
go语言数据库中mysql驱动安装
【11月更文挑战第2天】
20 4
|
1月前
|
存储 人工智能 Cloud Native
云栖重磅|从数据到智能:Data+AI驱动的云原生数据库
阿里云瑶池在2024云栖大会上重磅发布由Data+AI驱动的多模数据管理平台DMS:OneMeta+OneOps,通过统一、开放、多模的元数据服务实现跨环境、跨引擎、跨实例的统一治理,可支持高达40+种数据源,实现自建、他云数据源的无缝对接,助力业务决策效率提升10倍。
|
2月前
|
存储 人工智能 Cloud Native
云栖重磅|从数据到智能:Data+AI驱动的云原生数据库
阿里云数据库重磅升级!元数据服务OneMeta + OneOps统一管理多模态数据
|
2月前
|
消息中间件 存储 NoSQL
国产化中间件正在侵蚀开源中间件
国产化中间件正在侵蚀开源中间件
273 6
|
3月前
|
运维 安全 Cloud Native
核心系统转型问题之分布式数据库和数据访问中间件协作如何解决
核心系统转型问题之分布式数据库和数据访问中间件协作如何解决
|
3月前
|
SQL Java 数据库连接
java连接数据库加载驱动到java项目
该博客文章介绍了如何在Java项目中通过代码加载数据库驱动并连接SQL Server数据库,包括具体的加载驱动和建立数据库连接的步骤,以及如何将驱动包添加到Java项目的构建路径中。

推荐镜像

更多