`
骑猪逛街666
  • 浏览: 144204 次
  • 性别: Icon_minigender_2
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

如何实现高容量大并发数据库服务 | 数据库分布式架构设计

阅读更多
阅读原文请点击:http://click.aliyun.com/m/23415/
摘要: 袋鼠学院和优云、阿里云联合举办的沙龙结束之后,总是有小伙伴们来问PPT内容,想要进一步了解Topic内容。(哦,对了对了,竟然还有小伙伴专门冲着袋鼠云去听沙龙,感动cry~~) 千呼万唤,忙成狗的袋鼠小妹终于把沙龙总结整理了出来(⊙o⊙) 本次沙龙的主题是“云时代下的运维管理实践”,受邀请的演讲嘉宾,花名宏翊(经常关注袋鼠云的同学,肯定已经对这个名字很熟悉了),是袋鼠云首席数据库架构师,袋鼠学院数据库讲师。

袋鼠学院和优云、阿里云联合举办的沙龙结束之后,总是有小伙伴们来问PPT内容,想要进一步了解Topic内容。(哦,对了对了,竟然还有小伙伴专门冲着袋鼠云去听沙龙,感动cry~~)



千呼万唤,忙成狗的袋鼠小妹终于把沙龙总结整理了出来(⊙o⊙)



本次沙龙的主题是“云时代下的运维管理实践”,受邀请的演讲嘉宾,花名宏翊(经常关注袋鼠云的同学,肯定已经对这个名字很熟悉了),是袋鼠云首席数据库架构师,袋鼠学院数据库讲师。



呼应沙龙运维实践的主题,结合自己的专长领域,宏翊主要是从数据库领域来谈云时代下的运维管理该如何做,主题为“如何实现高容量大并发数据库服务?之数据库分布式架构设计”。



640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=



为什么数据库需要做分布式架构设计?在对数据库进行拆分设计和实施时,会遇到哪些坑?又该如何避免踩坑?



袋鼠小妹结合宏翊的PPT和现场演讲,整理内容如下,希望和大家一起分享、探讨。



  摘要



数据库拆分要根据业务现状、模式,选择合适的拆分方式,紧密结合业务及应用架构设计,谨慎拆分,防止过度设计。



  正文



一  为什么要做分布式数据库架构改造?



云计算大数据时代,传统的数据库架构已经无法支撑企业高容量的数据增长,满足高并发的业务需求。对企业数据库进行分布式架构设计,打破了数据库资源不够用的天花板的同时,还能根据企业业务发展状况,随时平滑扩容。



二  分布式数据库架构改造,如何做?



数据库分布式改造要遵循“循序渐进”的拆分原则



拆分方式有垂直拆分和水平拆分两种,选择拆分方式要根据企业自身业务发展需要。



640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=



一般来说,是先做垂直拆分,再做水平拆分。



在单一数据节点无法满足业务和用户增长需求的情况下,需要做一个服务化,对业务进行垂直梳理,后面的数据节点可以放在不同的资源节点上,以提高数据服务的整体性能。



比如一个APP的业务数据,在业务初期阶段,是全部放在一个数据库节点中,在业务量和数据量快速增长的中期阶段,需要进行垂直梳理,根据业务逻辑,拆分成商品、交易、用户,并分别放在不同的数据库。



如果其中的一个服务已经拆的很细了,但还是有性能瓶颈,无法支撑我们的业务增长,数据库这块才需要再做水平拆分。



水平拆分就是将数据(比如图中APP的交易数据)拆成多片,放到不同的资源上,用一个集群来支撑更高的业务增长。



在拆分时,要谨慎,因为拆分会引入复杂性,能不做就不做,最优先是做业务和架构上的优化,最终才是做数据库拆分。



在拆分的过程中,不要做过度的设计,或者直接从初级跳到高级,这样做其实非常浪费资源,投入产出比也不好。



三 水平拆分的难点及解决方案



对企业数据库进行分布式改造,需要理解客户的业务逻辑、丰富的拆分经验积累。尤其是水平拆分,有系统复杂度高、技术挑战性强、稳定性控制难、具有一定局限性四大难点。



针对这些问题,宏翊给我们提供了两种解决方案。



客户端实现数据路由

此方案不会引入额外的组件,架构上比较轻量,简单场景使用尚可,但稍复杂的场景会放大它的劣势,比如配置管理复杂等。



640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=

数据库中间件

中间件的使用最大限度地屏蔽了分布式数据库所引入的复杂性,极大降低了研发的门槛。最重要的是,有了数据库中间件,应用看到的还是单一的数据库。


640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=



四  水平切分原理及设计原则



要对一个表做拆分,选择一个拆分字段,通过一个路由算法确定数据存放在哪个底层库。

比如下列数据选择MEMBE_ID作为拆分键,通过路由算法计算后得出’test1234‘相关的数据应该落在库1上,DRDS会把所有MEMBE_ID=‘test1234’相关的请求全都路由到库1。其他数据请求亦落到相应的底层库。

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=



接下来,当数据已经放下去了,应该如何去查询、访问和变更?



比如要查询一条记录,member_id=‘test1234’



它怎么去执行的呢?



首先计算一个hash值,当值等于某一个值,它会知道这个数据存储在哪一个库上,所以会直接路由到底层这个库,从这个库查询,返回结果。



中间件扮演的就是这个路由和计算的角色,性能非常强大。拆分后,各底层数据库数据量比较小,查询返回比较快;二是可以支持更高的并发,整体并发基本等于两个底层数据库实例并发之和。
阅读原文请点击:http://click.aliyun.com/m/23415/
分享到:
评论

相关推荐

    分布式数据库架构及企业实践

    分布式数据库架构在现代企业中扮演着至关重要的角色,尤其是在大数据时代,传统的单体数据库往往无法满足高并发、海量数据处理的需求。"分布式数据库架构及企业实践-基于Mycat中间件"这一主题深入探讨了如何利用...

    分布式数据库技术系列概览:分布式数据库核心技术发展趋势(2021)(29页).pdf

    1. 分布式架构与数据分片: 分布式数据库的核心之一是数据分片,即将大数据库分割成多个较小的部分,或称“分片”,分布到不同的节点上。数据分片策略包括范围分片、哈希分片、复合分片等,每种方法都有其适用场景...

    分布式架构设计概要总结.pdf

    综上所述,分布式架构设计是互联网业务发展的必然选择,它通过分而治之的思想,实现了系统容量的扩展和服务的高可用,同时也推动了中间件技术的发展,简化了开发流程,提高了业务交付速度。在设计分布式系统时,必须...

    分布式架构设计概要总结.docx

    总结来说,分布式架构设计的核心在于“分而治之”的思想,目的是处理大规模并发请求并确保服务的高可用性。通过负载均衡、数据一致性、故障恢复机制以及各种中间件的支持,分布式架构能够有效支撑互联网业务的高效...

    2021分布式数据库技术系列概览.pdf

    分布式数据库在处理大规模数据和高并发访问方面具有优势,因此它们在很多领域被广泛应用,如在线社交网络、金融服务、电子商务、物联网和移动应用等。这些系统通常需要处理海量的数据,并且用户遍布全球,分布式...

    分布式数据库架构及企业实践-基于Mycat中间件.zip

    分布式数据库架构在现代企业IT系统中扮演着至关重要的角色,特别是在大数据时代,单机数据库已经无法满足高并发、海量数据的处理需求。本资料“分布式数据库架构及企业实践-基于Mycat中间件”深入探讨了如何利用...

    分布式数据库在湖南电信IT架构转型中的探索和应用.pdf

    在湖南电信的实践中,Mycat被用来协调MySQL数据库,实现高并发和大规模数据处理。 3. 分布式数据库的优势 - **扩展性**:通过动态增加或减少数据库节点,实现系统的线性扩展,适应业务规模的变化。 - **高可用性*...

    分布式OB数据库V1架构设计参考

    分布式数据库Ocean Base是一种高性能的分布式数据库系统,设计用于解决大数据量和高并发场景下的数据管理问题。该系统的核心目标是提供高可用性、线性可扩展性和强大的事务处理能力,同时确保数据的一致性和完整性。...

    电商网站分布式架构设计与优化.docx

    《电商网站分布式架构设计与优化》 电商网站的架构设计是一项复杂的任务,它不仅需要满足基本的业务功能,还需要具备高性能、高可用性、可伸缩性和可扩展性。本文以电商网站为例,探讨从需求分析到分布式架构的演进...

    分布式数据库缓存系统设计与实现

    总结,分布式数据库缓存系统通过优化数据访问路径,提高服务性能,是应对高并发、大数据量场景的有效手段。设计和实现一个高效、稳定的缓存系统,需要综合考虑数据分布、缓存策略、一致性等多个方面,结合具体业务...

    腾讯云分布式数据库解决方案

    分布式数据库(DCDB)的产生是基于腾讯业务规模的不断扩展,自2004年起,腾讯的业务规模增长迫使公司从单机数据库架构转向了更先进的分布式架构。腾讯云分布式数据库DCDB经历了13年的发展历程,包括微信支付、腾讯...

    江苏银行国产分布式数据库上线成功.pdf

    与传统的集中式数据库相比,分布式数据库在进行数据存取和处理时能够更好地实现水平扩展,提高数据吞吐量和系统容量,尤其适合处理大规模数据。 2. 江苏银行分布式数据库的应用案例 江苏银行在全国银行业内首次引入...

    分布式架构在云计算平台中的应用对比分析.docx

    分布式架构的主要目标是解决单体系统在处理大规模数据和高并发请求时面临的性能瓶颈问题。在云计算环境中,它满足了以下关键需求: 1. 可扩展性:通过将服务和数据分散到多个节点,分布式架构可以轻松地添加或移除...

    tbase 01-分布式数据库概述V1.1.pdf

    随着互联网的发展,数据量急剧增长,单一数据库无法应对大规模数据和高并发的挑战,于是出现了非关系型的NoSQL数据库,牺牲了部分事务一致性(ACID特性)以换取更高的性能和大数据处理能力。近年来,为了兼顾高性能...

    2019阿里云峰会上海站许文奇技术中台分布式架构在蚂蚁业务的实践分享.pdf

    总之,蚂蚁金服的分布式架构实践表明,分布式架构能够有效地支撑业务快速发展和高并发处理的需求,同时也对技术人员提出了更高的要求,特别是在系统设计、服务治理、性能优化、故障排查等方面。通过持续的实践和探索...

    分布式数据库技术系列简报:云计算场景驱动分布式数据库技术演进(2021)(12页).pdf

    分布式数据库技术是近年来在云计算领域发展迅速的一种关键技术,它旨在解决单体数据库在处理大规模数据、高并发访问以及追求高可用性与可扩展性时面临的挑战。本篇报告聚焦于云计算场景驱动的分布式数据库技术演进,...

    集中式数据库与分布式数据库的融合与迁移.pdf

    而分布式数据库则是将数据分散存储在多个通过网络连接的计算机或存储节点上,其基本思想是将原本集中式数据库中的数据拆分成多个部分存储在不同的物理位置,这样可以获得更大的存储容量和更高的并发访问性能。...

    海量存储和高并发的数据库架构设计实践.pdf

    综上所述,设计和实现一个能够处理海量存储和高并发的数据库架构需要深入理解各种扩展策略,包括分布式存储、数据拆分、路由和事务管理。同时,随着技术的发展,NewSQL数据库和分布式存储解决方案提供了新的可能性,...

    高并发高负载大型网站系统架构

    【高并发高负载大型网站系统架构】是指设计和构建能够处理大规模用户访问、高并发请求的网站系统。这种系统架构必须具备高安全性、高稳定性、高并发处理能力和高负载承受能力,以应对如淘宝等大型电商平台所面临的...

Global site tag (gtag.js) - Google Analytics