如何实现高容量大并发数据库服务设计 ?

349 篇文章 3 订阅
订阅专栏
349 篇文章 0 订阅
订阅专栏
126 篇文章 11 订阅
订阅专栏

摘要

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

正文

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

1.客户端实现数据路由

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

2.数据库中间件

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

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

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

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

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

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

它怎么去执行的呢?

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

中间件扮演的就是这个路由和计算的角色,性能非常强大。拆分后,各底层数据库数据量比较小,查询返回比较快;二是可以支持更高的并发,整体并发基本等于两个底层数据库实例并发之和。

五来自阿里云的数据库中间件产品:DRDS

数据库中间件产品中,有平民软件OneProxy等商业软件;也有MyCat等开源产品,宏翊为大家则介绍了一款广泛使用的成熟商业产品DRDS,并讲解了DRDS如何解决对数据库进行拆分时遇到的难点。

DRDS,英文名Distributed Relational Database Service

是阿里巴巴自主研发致力于解决单机数据库服务瓶颈问题而推出的分布式数据库产品。 DRDS 高度兼容 MySQL 协议和语法、支持自动化水平拆分、平滑扩容、弹性扩展、透明读写分离、分布式事务、具备分布式数据库全生命周期的运维管控能力。DRDS前身为淘宝TDDL,是近千核心应用首选组件,已稳定服务8年以上。

DRDS五大核心功能

分库分表

分库分表是DRDS的核心功能,DRDS 在后端将数据量较大的数据表水平拆分到后端的每个 RDS 数据库中,这些拆分到 RDS 中的数据库被称为分库,分库中的表称为分表。拆分后,每个分库负责每一份数据的读写操作,从而有效的分散了整体访问压力。在系统扩容时,只需要水平增加分库的数量,并且迁移相关数据,就可以提高 DRDS 系统的总体容量。DRDS 支持库级拆分,表级拆分和分库分表拆分,通过 DRDS DDL 语句指定。

读写分离

在主实例的读请求较多、读压力比较大的时候,可以通过 DRDS 读写分离功能对读流量进行分流,减轻 RDS 主实例的读压力。

DRDS 的读写分离功能是对应用透明的设计。应用在不修改任何代码的情况下,只需要在 DRDS 控制台中调整读权重,即可将读流量按配置的比例在主 RDS 实例与多个 RDS 只读实例之间进行分流;写流量则全部到主实例,不做分流。

设置读写分离后,从主 RDS 实例读取的是强读,既实时强一致读,而只读实例上的数据是从主实例上异步复制的,存在毫秒级的延迟,因此从只读 RDS 实例读取的是弱读,属于非强一致性读。个别需要实时性、强一致性读的 SQL 可以通过 DRDS Hint 指定到主实例上执行。

全局唯一ID

DRDS 支持分布式全局唯一且有序递增的数字序列。满足业务在使用分布式数据库下对主键或者唯一键以及特定场景的需求。

小表广播

DRDS 将一些数据量小且更新频度不高的数据表存储为单表模式,这些数据表称为小表。通过数据同步将小表复制到与之 JOIN 的分库上进而提升 JOIN 效率的解决方案称为“小表广播”或者“小表复制”。支持查询引擎识别和下推复杂查询,兼容 98% MySQL 语法。

弹性扩容

当逻辑库对应的底层存储已经达到物理瓶颈,需要进行水平扩展,比如磁盘余量接近30%,那么可以通过平滑扩容来改善。平滑扩容是一种水平扩容方式,既把分库平滑迁移到新添加的底层存储上。在实现上是通过增加 RDS 实例的数量来提升总体数据存储容量,将分库迁移到新增的 RDS 实例,从而降低单个 RDS 实例的处理压力。

六分布式改造之后——运维

进行分布式改造之后,如何更省心省力对数据库进行运维?

靠人工?成本高、运维人员也难招!

借助袋鼠云开发的数据库自动化管理平台EasyDB,企业数据库运维很简单。

EasyDB完全兼容DRDS manager,具有高可用、高性能、易运维等特点。从性能、资源、集群、备份、容灾入手,支持多种数据库实例,大规模量的数据库运维,提供稳定准确的数据库告警、大盘趋势分析预警、空间跟踪、SQL跟踪、巡检报告等功能。运维管理人员可以轻松应对复杂的日常管理事务及突发性事件,数据库管理从此变得有规划,有效率,有预见性。

高并发系统设计.pdf
12-10
总之,设计高并发系统是一个复杂而深奥的工程,需要深入理解系统架构、网络通信、数据库原理等多个方面的知识。通过灵活运用各种设计方法和工具,我们可以构建出能够抵御洪水般流量冲击的健壮系统,为用户提供流畅的...
45_说说一般如何设计一个高并发的系统架构?.zip
11-13
综上所述,设计高并发系统架构涉及多方面的技术,包括负载均衡、服务拆分、缓存、数据库优化、异步处理、线程池管理和监控。通过合理运用这些技术和工具,我们可以构建出能有效应对高并发挑战的系统。而“01_高并发...
#运维侠客行·杭州站# 如何实现高容量并发数据库服务
weixin_33885676的博客
05-04 283
运维侠客行杭州站·讲师 宏翊,袋鼠云首席架构师,袋鼠学院数据库讲师。 在2017运维侠客行·杭州站上,主办方优云软件特意邀请了来自袋鼠云的首席数据库架构师宏翊给大家带来了如何实现高容量并发数据库服务。为什么数据库需要做分布式架构设计?在对数据库进行拆分设计和实施时,会遇到哪些坑?又该如何避免踩坑?一起来了解下吧。 ▍摘要 数据库拆分要根据业务现状、...
mysql高并发设计
最新发布
littleboy_IT
07-11 1111
连接池是一种管理数据库连接的技术,可以有效地减少连接的创建和销毁开销。当有新的请求到来时,可以从连接池中获取连接,而不需要每次都重新创建连接。通过适当设置查询缓存和系统缓存,可以减少磁盘IO操作,加快查询的执行速度。优化查询可以提高MySQL性能。可以通过合适的查询语句、索引和缓存机制来减少查询的执行时间,避免全表扫描和不必要的数据操作。写入扩展性:两个节点都可以处理写入操作,提高了写入操作的扩展性。数据冗余:提供了数据的热备份,降低了数据丢失的风险。数据延迟:由于复制是异步的,存在数据复制延迟的风险。
高并发大数据量的数据库设计与优化
u011436748的博客
01-21 834
用户表 用户特点表 用户标签表 单独设计,节约存储空间
大数据和高并发的解决方案总结
Bob
01-28 647
现在,软件架构变得越来越复杂了,好多技术层出不穷,令人眼花缭乱,解决这个问题呢,就是要把复杂问题简单化,核心就是要把握本质。 软件刚开始的时候是为了实现功能,随着信息量和用户的增多,大数据和高并发成了软件设计必须考虑的问题,那么大数据和高并发本质是什么呢? 本质很简单,一个是慢,一个是等。两者是相互关联的,因为慢,所以要等,因为等,所以慢,解决了慢,也就解决了等,解决了等,也就解...
阿里面试:设计一个大并发、大数据的系统架构,说说设计思路
架构师尼恩
02-04 1580
以上的内容,如果大家能对答如流,如数家珍,基本上 面试官会被你 震惊到、吸引到。最终,让面试官爱到 “不能自已、口水直流”。offer, 也就来了。在面试之前,建议大家系统化的刷一波 5000页《尼恩Java面试宝典PDF》,里边有大量的大厂真题、面试难题、架构难题。很多小伙伴刷完后, 吊打面试官, 大厂横着走。在刷题过程中,如果有啥问题,大家可以来 找 40岁老架构师尼恩交流。另外,如果没有面试机会,可以找尼恩来改简历、做帮扶。遇到职业难题,找老架构取经, 可以省去太多的折腾,省去太多的弯路。
大数据量高并发数据库优化.pdf
10-02
【大数据量高并发数据库优化】是IT领域中一个至关重要的主题,特别是在现代互联网应用和服务中,数据库的性能直接影响到用户体验和系统稳定性。本篇内容主要涵盖了数据库优化的多个方面,包括数据库结构设计查询...
大容量高并发服务器组的技术解析.pdf
11-28
综上所述,为了构建能够处理大容量并发请求的服务器组,开发者需要关注系统内核I/O性能的优化,合理利用线程池技术,以及考虑采用P2P架构。这些技术的应用不仅可以提升服务器的并发处理能力,还能有效降低维护成本和...
数据库高并发
07-05
可以查看企业高并发的终极解决方案,并对其他学习者有很大帮助
服务系统和数据库设计方案.docx
06-24
服务系统和数据库设计方案
大数据量+高并发数据库SQL优化
06-13
大数据量+高并发数据库SQL优化
秒杀架构设计
菲宇运维
03-14 1187
前言最近在部门内部分享了原来在电商业务做秒杀活动的整体思路,大家对这次分享反馈还不错,所以我就简单整理了一下,分享给大家参考参考业务介绍什么是秒杀?通俗一点讲就是网络商家为促销等目的组织的网上限时抢购活动比如说京东秒杀,就是一种定时定量秒杀,在规定的时间内,无论商品是否秒杀完毕,该场次的秒杀活动都会结束。这种秒杀,对时间不是特别严格,只要下手快点,秒中的概率还是比较大的。淘宝以前就做过一元抢购,一...
无限容量数据库架构设计
----------------
09-05 698
https://mp.weixin.qq.com/s/ad4tpM6cdi9r6vgfbaTzxg
数据库高并发高可用架构设计
weixin_42684977的博客
11-17 1699
之前做过一个电商网站,因为前期涉及到的数据量比较小,并发也不是很高,所以只有一个主库。当然所有的小网站都是这么一步步发展过来的。 当总订单量达到300万的时候,我们就开始构思数据库高并发高可用设计了。 1、数据库采用主从部署方式 这是目前最简单的高可用方式。主从部署,主写从读,读写分离。当读操作大于写操作的时候,这种方案带来的性能提升是很明显的。 主从复制: 几乎所有的主流数据库都支...
解决数据库高并发
ayumi8403的博客
10-26 180
解决数据库高并发的常见方案: 1) 缓存式的 Web 应用程序架构: 在 Web 层和 DB(数据库)层之间加一层 cache 层,主要目的:减少数据库读取负担,提高数 据读取速度。cache 存取的媒介是内存,可以考虑采用分布式的 cache 层,这样更容易破除内存容量 的限制,同时增加了灵活性。 2) 增加 Redis 缓存数据库: 把经常访...
企业数据库分布式改造策略:垂直与水平拆分指南
为了应对这些挑战,实现高容量并发数据库服务数据库分布式架构设计变得至关重要。本文将探讨为什么要进行分布式数据库改造,以及如何进行有效的垂直和水平拆分策略。首先,分布式改造的目标是打破资源限制,提供...
写文章

热门文章

  • kafka如何彻底删除topic及数据 127160
  • RESTFUL URL命名原则 53392
  • 网站实现扫描二维码关注微信公众号,实现自动登陆 50602
  • Rancher的优点及不足 49288
  • 怎么实现通过扫描二维码进行登录? 40462

分类专栏

  • 算法 2篇
  • 360linker
  • 资讯 24篇
  • 技术 349篇
  • 职场 86篇
  • 市场 79篇
  • 产品设计 16篇
  • 架构设计 126篇
  • 微服务 71篇
  • 区块链 3篇
  • 人工智能 2篇
  • 大数据 6篇
  • 软件开发 349篇
  • 编程语言 25篇
  • 运维 29篇
  • 航海日志 8篇
  • 项目管理 12篇
  • 团队管理 20篇
  • 沟通协调 13篇

最新评论

  • RESTFUL URL命名原则

    秦剑: 用短横线分隔呢?

  • CMDB有什么用

    ServiceDesk_Plus: 博主写的是真好,已点赞收藏+关注!CDBM确实是IT运维的一个关键!表情包 卓豪的ServiceDesk Plus听朋友说在用,CMDB可以为您的组织带来以下价值:构建您的IT基础设施数据库,为决策者提供所需信息的集中访问,以便针对信息技术基础设施相关事项作出明智的决策。 https://www.manageengine.cn/products/service-desk/itil/what-is-cmdb.html?utm_source=3rd

  • @Value取不到值的原因(引用application.properties中自定义的值)

    哦-是我: 除此之外,类名还有implements InitializingBean

  • 快照版本和发布版本区别

    菇勇者: 赞!很详细,非常感谢。表情包

  • java实现graphql接口调用

    使徒行者-编程的魅力: 如果mutation传的参数是一个对象怎么写?

最新文章

  • RocketMQ消息顺序和消息重复的处理
  • 浅谈常见的七种加密算法及实现
  • 跳表的实现原理
2021年3篇
2020年24篇
2019年179篇
2018年456篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

天下网标王网站优化培训学习西宁优化网站长春电商网站优化咨询热线空间资源优化平台网站免费的优化网站潜山网站优化哪家性价比高岳麓优化网站浙江综合网站优化产品介绍网站优化的怀柔快速网站优化绍兴网站优化收费网站怎样优化排名靠前网站优化平台哪家大鹤壁百度网站优化多少钱企业网站适合做整站优化吗公司优化网站网站资源整合及优化肇庆公司网站关键词优化费用品牌网站优化如何优化渠道嘉兴优化的网站壹起航网站优化维护重点天津靠谱的网站优化方案公司官方网站优化排名鼓楼区本地网站优化服务为先优化网站软件立择火3星网站做优化憾沟云速捷高端焦作网站综合优化网站搜索引擎优化的建议企业网站的优化作用网站优化的一些白帽做法香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声卫健委通报少年有偿捐血浆16次猝死汪小菲曝离婚始末何赛飞追着代拍打雅江山火三名扑火人员牺牲系谣言男子被猫抓伤后确诊“猫抓病”周杰伦一审败诉网易中国拥有亿元资产的家庭达13.3万户315晚会后胖东来又人满为患了高校汽车撞人致3死16伤 司机系学生张家界的山上“长”满了韩国人?张立群任西安交通大学校长手机成瘾是影响睡眠质量重要因素网友洛杉矶偶遇贾玲“重生之我在北大当嫡校长”单亲妈妈陷入热恋 14岁儿子报警倪萍分享减重40斤方法杨倩无缘巴黎奥运考生莫言也上北大硕士复试名单了许家印被限制高消费奥巴马现身唐宁街 黑色着装引猜测专访95后高颜值猪保姆男孩8年未见母亲被告知被遗忘七年后宇文玥被薅头发捞上岸郑州一火锅店爆改成麻辣烫店西双版纳热带植物园回应蜉蝣大爆发沉迷短剧的人就像掉进了杀猪盘当地回应沈阳致3死车祸车主疑毒驾开除党籍5年后 原水城县长再被查凯特王妃现身!外出购物视频曝光初中生遭15人围殴自卫刺伤3人判无罪事业单位女子向同事水杯投不明物质男子被流浪猫绊倒 投喂者赔24万外国人感慨凌晨的中国很安全路边卖淀粉肠阿姨主动出示声明书胖东来员工每周单休无小长假王树国卸任西安交大校长 师生送别小米汽车超级工厂正式揭幕黑马情侣提车了妈妈回应孩子在校撞护栏坠楼校方回应护栏损坏小学生课间坠楼房客欠租失踪 房东直发愁专家建议不必谈骨泥色变老人退休金被冒领16年 金额超20万西藏招商引资投资者子女可当地高考特朗普无法缴纳4.54亿美元罚金浙江一高校内汽车冲撞行人 多人受伤

天下网标王 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化