【译】一个由开源驱动的分布式数据库中间件生态系统

2021年7月21日,SphereEx联合创始人、Apache ShardingSphere PMC潘娟应邀在2021年上海AWS云计算峰会上做了 "Apache ShardingSphere "的主题演讲。开源分布式数据库中间件生态系统的构建"。

她介绍了开源项目的扩展、社区建设,以及ShardingSphere如何实践 "Apache之道"。本文是潘娟的观点的总结。

定位在数据库之上和业务应用之下的新生态系统层

不同的行业,不同的用户,不同的定位,不同的要求。今天的数据库面临着比过去更复杂的数据应用场景,以及越来越多的个性化和定制化的数据处理要求。苛刻的环境促使不同的数据库不断将数据读写速度、延迟、吞吐量等性能指标最大化。

逐渐地,分工明确的数据应用场景导致了数据库市场的分化,很难产生一个能够完美适应所有场景的数据库。因此,企业在不同的业务场景下选择不同的数据库是非常普遍的。

不同的数据库带来了不同的挑战。从宏观上看,这些挑战有一些共性,可以基于这些共性,形成一套事实标准。当你能在这些数据库之上建立一个能统一应用和管理数据的平台层时,即使底层数据库的差异仍然存在,你也可以按照某些固定的标准来开发一个系统。这种标准化的解决方案将大大降低用户管理基础数据设施的压力和学习成本。

Apache ShardingSphere是平台层。由于它对原始数据库的再利用,它可以帮助技术团队开发增量能力,如分片、加密和解密等。它不需要考虑底层数据库的配置,可以屏蔽用户的感知。因此,它能以直接的方式快速连接面向业务的数据库,并轻松管理大规模数据集群。

如何实践Apache的方式

当企业规模越来越大时,一个数据库已经不能支持大量的业务数据,因此有必要对数据库进行横向扩展。这就是分布式管理的问题。ShardingSphere在数据库之上构建了一个热插拔功能层,在提供传统数据库操作的同时,屏蔽了用户对底层数据库变化的感知,使开发者通过使用单个数据库来管理大规模数据库集群。ShardingSphere主要包括以下四个应用场景。

  • 分片策略

当业务量增加时,数据分片的压力会增大,因此其分片策略也会越来越复杂。ShardingSphere可以让用户以最小的成本,以灵活的可扩展的方式,释放除水平扩展之外的更多碎片化策略。它还支持自定义扩展。

  • 读取和写入分离

通常情况下,主从部署可以有效缓解数据库压力,但如果某个集群的某台机器或某张表出现问题,就无法进行读写操作,这个问题会对业务产生很大影响。为了避免这种情况,开发人员通常需要重写一套高可用策略,改变主/从表在读写之间的位置。ShardingSphere可以自动探索所有集群状态,所以它可以立即发现问题,如不可靠的请求,以及数据库的主从切换。它还可以自动恢复旧的主/从状态,这一点是用户无法感知的。

扫描二维码关注公众号,回复: 13791619 查看本文章
  • 分片扩展

随着业务的发展,有必要再次分割数据集群。ShardingSphere的The scaling组件使用户只用一条SQL命令就可以启动任务,并在后台实时显示运行状态。由于 "类似管道 "的扩展,旧的数据库生态系统被连接到新的数据库生态系统。

  • 数据加密和解密

在数据库应用方面,关键数据的加密和解密是非常重要的。如果一个系统不能以标准化的方式监控数据,一些敏感的数据可能会以明文的形式存储,而用户需要在以后对它们进行加密。这是很多团队的共同问题。

ShardingSphere将这一能力标准化,并将其整合到中间件生态系统中,因此它可以为用户自动实现新/旧数据的脱敏和加密/解密。整个过程可以自动实现。同时,它有多种内置的数据加密和解密/脱敏算法,用户可以根据需要定制和扩展自己的数据算法。

一个可插拔的数据库加平台

面对各种需求和使用场景,ShardingSphere为不同领域的开发者提供了三种访问方式。用于Java的JDBC、用于异构数据库的Proxy和用于云的Sidecar。用户可以根据自己的需求进行选择,对原有集群进行分片、读写分离、数据迁移等操作。

  • **JDBC访问:**一个增强的JDBC驱动,允许用户完全使用JDBC模式,因为它与JDBC和各种ORM框架兼容。因此,不需要额外的部署和依赖,用户可以实现分布式管理、横向扩展、脱敏等。
  • Proxy访问: 一种模拟数据库服务,使用Proxy来管理底层数据库集群,这意味着用户不需要改变他们现有的模式。
  • **基于云的Mesh访问:**ShardingSphere为公共云设计的一种部署形式。近日,SphereEx加入了亚马逊网络服务(aws)的创业计划,将与aws在其中国市场及其他地区进行合作,并为aws用户提供更强大的图像代理部署。aws和SphereEx将共同为企业应用创造一个更成熟的云环境。

开源让个人工作与世界相连

ShardingSphere在其行业内颇具影响力。现在,当用户需要在中国寻找横向扩展工具时,ShardingSphere通常在他们的候选名单上。当然,ShardingSphere的发展不仅得益于项目维护团队多年来的宝贵贡献,也得益于中国日益活跃的开源社区。

过去,中国开源社区的用户大多只是下载程序,寻找代码参考,但他们很少参与社区建设。近年来,开源概念在中国越来越流行,因此,越来越多的具有较强技术能力的人加入了社区。正是在他们的参与下,ShardingSphere社区变得越来越活跃。但如何评价一个好的开源项目?其标准不仅限于其概念和技术,还包括其在技术影响力、开源影响力、生态系统扩展以及开发者群体等方面积累的深厚基础。

为此,ShardingSphere作为Apache的顶级项目之一,仍然积极呼吁更多的人加入开源社区。这些社区是拓宽个人视野、更加开放和合作、重新发现自我价值的绝佳途径。

项目链接。

ShardingSphere Github:github.com/apache/shar…

ShardingSphere Twitter:twitter.com/ShardingSph…

ShardingSphere Slack频道:https://bit.ly/3qB2GGc


由开源驱动的分布式数据库中间件生态系统》最初发表在《Nerd For Tech》杂志上,人们通过强调和回应这个故事来继续对话。

猜你喜欢

转载自juejin.im/post/7086708937998893064