Apache ShardingSphere 企业行|走进叮当快药

iamwaiwai
发布于 2022-4-16 18:57
浏览
0收藏

近日,Apache ShardingSphere 核心技术团队应邀来到叮当快药研发中心,与相关技术同学就 Apache ShardingSphere 应用场景、使用痛点、后续社区合作等话题展开了深度交流和探讨。
作为国内领先的互联网医药平台,叮当快药目前服务的客户量已达到数千万级别,核心业务系统涉及用户、商品、支付、订单履约、配送调度等;区别于传统行业,叮当快药作为依托于互联网和物联网技术的医药行业,日常处理请求量大,平均响应时间要求高。为服务业务转型,叮当快药成功完成从传统商业化 Oracle 数据库到开源 MySQL + ShardingSphere 架构迁移,通过引入数据库分表功能,以满足自身 “高并发”、“低延迟” 的场景需求。

叮当快药作为 Apache ShardingSphere 社区的长期优质合作伙伴,一直以来都积极参与到 Apache ShardingSphere 的项目建设中来,双方始终保持着紧密的联系。随着 Apache ShardingSphere 进入到 5.X 时代,叮当快药邀请 Apache Member、Apache ShardingSphere PMC 潘娟,与现场的研发同学共同进行了一次关于技术实践的探讨,对叮当快药在使用 Apache ShardingSphere 过程中所遇到的难点以及未来的发展规划展开了讨论。

分表后如何实现对逻辑分表的高效管理

Apache ShardingSphere 数据分片功能提供了透明化分库分表能力,用户可以像使用原生数据库一样使用 ShardingSphere 数据分片功能。在修改表结构的场景中,ShardingSphere-Proxy 更多承担了底层数据库操作,DBA 只需按照原有的方式使用 alter 修改逻辑表即可,ShardingSphere-Proxy 会同步将该指令下发到存储层,管理较为便捷,进而赋能底层数据库更强大的分布式能力。因此,用户完全可以将 Proxy + 底层数据库视作为一款完整的分布式数据库来使用,从而不需要关心底层分片表的管理。

联邦查询与混合部署,解决跨节点查询及性能问题

在执行了数据库分片操作后,由于事务不在同一个实例下,许多用户会关注跨节点状态下数据查询的能力。作为 Apache ShardingSphere 的功能特性之一,联邦查询能够解决跨节点查询的问题。但与此同时,跨节点查询会带来非常高的性能损耗,这对于性能、反应要求较高的场景下是不可接受的。为此,Apache ShardingSphere 在联邦查询体系中引入了查询优化模块。通过优化模型,Proxy 能够计算出相对高效的执行方案,将数据分为必要与不必要两类,在各自的分片中对必要的数据进行跨节点计算,不必要的数据即留在本地处理,进而减少因跨节点查询所带来的性能浪费。

叮当快药主要在业务中使用 ShardingSphere-JDBC 对数据库轻松进行分库分表以及读写分离等透明化操作,来解决其对于“高并发”、“低延迟” 场景的需求。同时在 JDBC 的基础上,ShardingSphere 提供 Proxy 端的部署模式,将数据库部分能力和操作部署在 Proxy 层面,让用户可以像使用原生数据库一样使用 Apache ShardingSphere,为用户带来更加优质的使用体验。

因此,建议 ShardingSphere-JDBC 和 ShardingSphere-Proxy 混合部署使用,这样可以实现维护友好与性能兼顾的平衡。

如果需要将数据迁移至 Proxy 端,Apache ShardingSphere 提供了弹性迁移模块,用户完全不需要担心迁移、上线的处理问题。其次,随着业务的增长和变化,也许企业后期会需要对已经分片处理过的数据库进行二次分片。Apache ShardingSphere 结合 Scaling 可以实现数据分片的弹性伸缩,保证系统可以随着业务变化而不断调整,从而满足业务快速增长的需求。

未来规划,4.0 版本与 5.0 版本的特性区别

叮当快药目前使用的是 Apache ShardingSphere 4.0 版本。从 2021 年 11 月份,Apache ShardingSphere 正式进入到 5.X 时代。从 5.0.0 版本开始,Apache ShardingSphere 正式开启了以可插拔架构为核心的全新阶段,实现了由过去数据分片单一应用场景到现在复杂应用环境下综合数据治理的身份转变与能力提升。在新版本下,Apache ShardingSphere 具备了更多新特性,并拥有了更加成熟的大数据解决方案。

•架构层面:完成内核层、功能层与生态层这三层可插拔架构的构建,并能够通过可插拔方式进行扩展,使所有的功能都能够被叠加使用,方便用户根据自身的业务需求来定制化数据库服务;
•内核层面:全面提升了包括 MySQL,PostgreSQL,Oracle 以及 SQL Server 等数据库方言的解析能力,引入查询优化引擎,完成对跨库查询和子查询等这类复杂 SQL 的支持;
•DistSQL:ShardingSphere 在标准 SQL 能力之外提供了一套分布式 SQL,用户可以像使用数据库一样使用标准的 SQL 来管理分布式数据库服务;
•代理端:完善对 PostgreSQL 协议支持,支持 openGauss 数据库,引入权限系统,方便用户对数据进行精细化的权限控制等。

(来源公众号:ShardingSphere官微)

分类
收藏
回复
举报
回复
    相关推荐