共计 2984 个字符,预计需要花费 8 分钟才能阅读完成。
“ShardingSphere 大大简化了分库分表的开发和保护工作,对于业务的疾速上线起到了十分大的撑持作用,激进预计 ShardingSphere 至多为咱们节俭了 4 个月的研发老本。”
——史墨轩,易华录·技术总监
今年以来,随同着易华录旗下面向个人用户的云服务产品【葫芦 App】正式上线,后盾架构所接受的业务压力也一劳永逸。
为此,葫芦 App 研发团队抉择采纳 ShardingSphere 分库分表的性能对数据进行了横向的拆分,围绕 ShardingSphere 灵便麻利的个性,满足了葫芦 App 业务对数据层扩展性的要求,防止团队反复“造轮子”,最大水平简化了随着业务增长而带来的愈发复杂化的分库分表的开发与保护工作。
1 从能力扩大到业务上新,葫芦 App 所面临的增长压力
对于数据存算能力的高要求,深深铸在了葫芦 App 技术团队的基因中。
因为葫芦 App 正处于疾速成长期,业务和性能的调整需要绝对频繁,这就须要后盾技术团队可能依据前端业务变动而疾速做出适配调整。用户数量和业务所产生的数据体量都在飞速增长的同时,也为后盾底层数据库带来了更大的压力。
随着 2020 年 5 月 17 日葫芦 App 的正式上线,用户数据和业务体量也呈现出快速增长的态势,后盾数据库不可避免地须要进行屡次程度拆分。同时随着业务需要的疾速变动,新的挑战也一直随之呈现:
能力扩大问题
随着用户量的快速增长以及产品状态的演变,用户数据呈现了爆发式增长,过来传统架构的存算能力受到了极为严厉的挑战,因而葫芦 App 对于后端数据处理平台的要求是在具备扩大能力的同时,也要保障肯定的灵活性。
效率晋升问题
为应答疾速多变的业务,葫芦 App 的研发团队须要可能依据业务诉求来进行疾速调整,以晋升后盾架构对业务的适应性,高灵便、易拓展个性的数据架构将可能极大晋升团队研发效力。另一方面在大体量数据的影响下,数据库的检索效率不免呈现提早、读写慢等问题,进而会影响到最上层的用户体验。
业务上线问题
性能上新频繁、上线工夫提前等是任何一款新产品在上市初期都会遇到的问题,这对研发团队的研发能力提出了极大挑战。此前葫芦团队本打算通过外部研发力量并联合业务状况打造出本人的 Sharding 计划,不过因为工夫关系,从方案设计、研发再到计划落地的自研路线已无奈走通,因而敲定 Sharding 计划火烧眉毛。
零碎稳固问题
在引入新技术的同时,零碎稳定性也会面临较大的挑战,尤其是面向底层技术的援用,大多具备肯定的平台业务侵入性,在引入后大概率会对业务零碎的稳定性产生肯定影响。葫芦 App 研发团队须要一款对底层数据库侵入性低、适应期短、稳定性高的数据利用产品。
2 利用 ShardingSphere 的个性构建灵便高可用的数据架构解决方案
围绕上述的一些诉求,葫芦团队用了 2 周左右工夫对 ShardingSphere 及同类解决方案进行了全面评估,综合思考了如产品性能、成熟度、稳定性、性能等多方面评估指标,最终 ShardingSphere 凭借欠缺的性能反对水平以及高成熟度,充沛满足了葫芦团队的业务诉求。
从上图中能够看出,葫芦团队将 ShardingSphere 部署在了阿里云的 RDS 之上,相较于对本体数据库做调整,葫芦团队更偏向于在数据库之上来进行数据治理。而 ShardingSphere 可能从可插拔架构所带来高扩展性、间隔业务更严密的贴合性以及对于业务架构的零侵入性这三个层面对葫芦的后盾数据架构进行无效改良,并带来了显著的成果晋升:
可插拔架构的『高扩展性』
因为业务个性,葫芦 App 本来无限的存储空间被耗费得十分快,并逐步开始影响用户在前端的响应效率。通过采纳 ShardingSphere 的分片策略,葫芦研发团队在应答海量计算 + 存储所带来的业务问题同时,可能确保分片扩大策略的灵活性。基于此,葫芦团队能够在 ShardingSphere 上疾速做出相应的性能扩大,为后续架构调整提供优化计划,进一步强化突出了 ShardingSphere 分库分表的劣势。
间隔业务更严密的『贴合性』
后盾架构的变动越小,对于业务而言就越可控。ShardingSphere 这种位于数据库之上的生态,间隔业务更近,部署起来也更加轻量,无疑是解决葫芦 App 前台业务变更与后盾架构调整之间矛盾的最优解。此外在灵活性层面,ShardingSphere 通过相干配置即可实现的形式,极大简化了葫芦研发团队在分库分表层面的研发与保护工作,对于业务的疾速上线起到了十分大的撑持作用。
对于业务架构的『零侵入性』
葫芦 App 抉择了 ShardingSphere-Proxy 部署模式,在不更换底层数据库的前提下通过 Proxy 来治理实在的数据库集群,根本无需对业务进行革新就曾经实现了业务与数据在架构层面的拆散,并防止了因更换数据库导致的业务不可用、漫长稳固周期等危险。另外,ShardingSphere 的无状态模式,简直不会对前端用户产生任何可感知的影响,业务层也无需关注数据的存储形式。
因而对于葫芦 App 这种上线工夫缓和、性能迭代快的产品来说,ShardingSphere-Proxy 通过复用原有数据库的能力,帮忙葫芦研发团队在数据库之上实现分片、数据加密等增量能力的开发,且向下不需思考底层数据库的配置,向上可能屏蔽用户感知,从而疾速构建起面向业务的数据库直连能力,从零碎架构层面进行了比拟好的拆散,确保后续数据库代理层的问题修复、版本更新等日常保护工作都不会影响到业务。
3 写在最初
此次与易华录葫芦 App 研发团队的单干,助力葫芦研发团队安稳度过了数次业务体量翻倍的历程,正是 ShardingSphere 在寰球多种利用场景下的一个缩影。在商业化公司 SphereEx 的推动下,ShardingSphere 正在继续向着云化、商业化稳步迈进。在社区和商业化公司的双重加持下,将来 ShardingSphere 将持续深耕数据利用场景,继续开掘 ShardingSphere 在各畛域场景下的深层次价值,为用户提供笼罩更全面、性能更弱小的数据服务。
目前,ShardingSphere 作为 Apache 基金会下的顶级开源我的项目,在 GitHub 上取得了超 14K Star 的关注,已成为行业内最受欢迎的开源我的项目之一,寰球有超过 170 家企业用户注销应用,笼罩金融、电子商务、云服务、游览、物流、教育、娱乐等多个畛域。
对于易华录 & 葫芦 App
北京易华录信息技术股份有限公司,成立于 2001 年,是国务院国资委间接监管的地方企业中国华录团体旗下控股的上市公司,致力于建设城市数字经济基础设施,以致力升高全社会长期保留数据的能耗和老本为使命,以成为社会可信的大数据一级开发和存储服务提供商直至演变成数据银行为愿景,构建一个数字孪生的城市,最终实现数字永生。
作为易华录外部孵化的第一款 C 端产品,葫芦 App 可能将用户生产内容的构思与素材妥善存储下来,并提供故事化的记录形式,升高用户内容制作门槛,让每个用户都能将生存的美妙活泼地展示进去,发现集体生存的精彩之处。为用户存储毕生,点亮美妙。
欢送更多技术团队约稿投稿,和大家分享应用 ShardingSphere 的教训思考。如需转载请后盾私信留言,对案例感兴趣的搭档可分割社区经理(ss_assistant_1)回复“加群”进入技术交换群,咱们也会不定期为社区倒退做奉献的热心搭档送上精美周边噢。
欢送扫码关注咱们
约稿投稿
退出交换群