Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >【DB优化1】高并发数据库读写分离架构

【DB优化1】高并发数据库读写分离架构

作者头像
风间影月
发布于 2022-04-18 03:52:10
发布于 2022-04-18 03:52:10
4340
举报
文章被收录于专栏:BeJavaGodBeJavaGod

在微服务开发中,随着业务量数据量的提升,数据库必定遭遇高并发等风险。这里我们可以先来看一下如下图:

这是一个典型的微服务实例,假设现在有一个订单微服务(可以是一个服务集群),这个服务必定对应一个业务库,那就是订单数据库,订单微服务处于一整个服务调用的链路中,他会被其他微服务来进行调用,可以是rest请求也可以是rpc等调用。

这个订单库是单库,单库在高并发的情况下必定出现瓶颈。此时,我们需要进行一定的优化。

根据“二八原则”,80%都是读请求,甚至更多,20%都是写请求,甚至更少。所以绝大多数的业务场景之下都是高并发读。假设我们现在的目的是,要提高并发读的性能以及高可用读。那么这个时候我们可以将单数据库优化为如下:

从图中可以看到,用户的请求并不是全部都到达一个单库,而是会被分流,这是一个非常典型的读写分离架构。一个主库对应三个从库,主从之间通过binlog进行数据复制,而且主从的表数据结构完全一致,数据也都一样。

像这样的一个主从架构可以保证高性能读以及高并发读,如果读库集群再次达到瓶颈则可以继续进行水平扩展。


后续老师也会推出更多的技术课程、实战课程以及架构课程,大家可以多多关注老师~

关注我,不定时更新技术架构、项目管理、企业管理等各种信息资讯,让你积累更多有价值的竞争资本~

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-04-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 BeJavaGod 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
数据库读写分离架构,为什么我不喜欢
RD:单库数据量太大,数据库扛不住了,我要申请一个数据库从库,读写分离。 DBA:数据量多少? RD:5000w左右。 DBA:读写吞吐量呢? RD:读QPS约200,写QPS约30左右。 上周在公司
架构师之路
2018/02/28
1.9K0
数据库读写分离架构,为什么我不喜欢
1分钟,啥是数据库读写分离架构?
额,数据库读写分离虽然不难,但并不是所有的“数据库扛不住”的场景,都应该用读写分离。今天花1分钟简单介绍下这个场景。
架构师之路
2020/05/28
6870
数据库读写分离这个坑,你应该踩过吧?
每个支付通道支付失败的时候都会返回特定的错误码,业务内部需要将通道特定的错误码转义成内部的错误码,这样对外就可以统一返回我们自己的错误码。
andyxh
2020/12/10
3950
数据库读写分离这个坑,你应该踩过吧?
关于读写分离架构的思考
分布式系统主要的目的之一就是解决大量用户的高并发问题。自己做过几个业务系统,也和别人聊过他们所做过的业务系统,其实大家都使用了相同的数据库,有的系统会使用 Redis 缓存,会使用 MQ 做系统解耦,有的也会使用搜索引擎。这些系统的构件相同的地方都是在处理数据,只不过职责不同罢了。归纳有以下几类:
知一
2022/09/23
4360
关于读写分离架构的思考
想用数据库“读写分离” 请先明白“读写分离”解决什么问题
有一些技术同学可能对于“读写分离”了解不多,认为数据库的负载问题都可以使用“读写分离”来解决。
架构师修行之路
2019/07/23
2.6K0
想用数据库“读写分离” 请先明白“读写分离”解决什么问题
高并发系统建设经验总结
作者:listenzhang,腾讯 PCG 后台开发工程师 前言 早期从事运单系统的开发和维护工作,从最早的日均百万单,到日均千万单,业务的快速发展再加上外卖业务的特点是,业务量集中在午高峰和晚高峰两个高峰期,所以高峰期并发请求量也是水涨船高,每天都要面对高并发的挑战。拿运单系统来举例,日常午高峰核心查询服务的 QPS 在 20 万以上,Redis 集群的 QPS 更是在百万级,数据库 QPS 也在 10 万级以上,TPS 在 2 万以上。 在这么大的流量下,主要的工作也是以围绕如何建设系统的稳定性和
腾讯技术工程官方号
2021/11/01
1K0
一个深入浅出的 MySQL 高并发优化指南,多年MySQL实战经验分享
这半个月,很多小伙伴留言问我618各大电商后端的技术,最多的是关于系统压力暴增情况下如何进行MySQL数据库优化的。 今天就结合我自己工作中的真实案例和大家分享一下吧。 前几年我待过一家创业公司,做的是商城业务。那两年公司业务迅速增长,用户从零积累到千万级别,每天访问量几亿次,高峰QPS高达上万次每秒。 赶上618、双十一大促期间,系统的写压力成倍增长,读业务的请求量更是在写业务的请求量的50倍。后面我们就面临了极具技术挑战性的数据库升级过程。 最初的技术选型,采用的是Java语言进行开发,数据库使用的是M
Java3y
2022/07/04
1.1K0
一个深入浅出的 MySQL 高并发优化指南,多年MySQL实战经验分享
如何正确使用数据库的读写分离
在应用系统发展的初期,我们并不知道以后会发展成什么样的规模,所以一开始不会考虑复杂的系统架构,复杂的系统架构费时费力,开发周期长,与系统发展初期这样的一个定位是不吻合的。所以,我们都会采用简单的架构,随着业务不断的发展,访问量不断升高,我们再对系统进行架构方面的优化。
程序员波特
2024/01/19
2410
如何正确使用数据库的读写分离
程序员修神之路--略懂数据库集群读写分离而已
一个可以抵抗高并发流量系统的背后必定有一个高性能的数据库集群,就像每一个成功的男人背后总有一个强势的女人一样。数据库集群在部署模式上属于分布式,但是CAP原则却不适用于分布式数据库,具体原因可见之前文章:、
架构师修行之路
2020/09/14
4120
程序员修神之路--略懂数据库集群读写分离而已
高并发,我把握不住啊!
我承认我有赌的成分,点进去一看,果然是广告。说真的,内容看起来还是很有吸引力的,但是贫穷阻止了我消费的冲动。
三分恶
2021/05/13
7350
高并发,我把握不住啊!
数据库架构:主备+分库?主从+读写分离?
1、高可用分析:高可用,主库挂了,keepalive(只是一种工具)会自动切换到备库。这个过程对业务层是透明的,无需修改代码或配置。 2、高性能分析:读写都操作主库,很容易产生瓶颈。大部分互联网应用读多写少,读会先成为瓶颈,进而影响写性能。另外,备库只是单纯的备份,资源利用率50%,这点方案二可解决。 3、一致性分析:读写都操作主库,不存在数据一致性问题。 4、扩展性分析:无法通过加从库来扩展读性能,进而提高整体性能。 5、可落地分析:两点影响落地使用。第一,性能一般,这点可以通过建立高效的索引和引入缓存来增加读性能,进而提高性能。这也是通用的方案。第二,扩展性差,这点可以通过分库分表来扩展。
搜云库技术团队
2019/10/17
1.3K0
计算机高并发浅析
高并发应用场景涉及大量用户同时访问或操作系统,这对系统的性能、稳定性和扩展性提出了高要求。以下是一些常见的高并发应用场景及其复杂性简介:
锅总
2024/07/04
2040
计算机高并发浅析
什么是高并发架构?
TPS(每秒事务数):每秒钟可以处理的事务(请求响应),大概的计算公式为:并发数/每秒响应时间=TPS
kubernetes中文社区
2019/07/30
9930
高并发的各种实践手段
高并发,几乎是每个程序员都想拥有的经验。原因很简单:随着流量变大,会遇到各种各样的技术问题,比如接口响应超时、CPU load升高、GC频繁、死锁、大数据量存储等等,这些问题能推动我们在技术深度上不断精进。
Java识堂
2020/07/01
1.7K0
高并发的各种实践手段
高并发下的服务器架构演变
  接下来就由浅入深分别来介绍下这几个方法是怎么应用到服务器并且解决高并发的,首先我们先来看下最原始的也是最简单的服务器与应用程序关系。
BUG弄潮儿
2021/04/26
1.1K0
高并发 MySQL 优化指南
这两个月来,很多小伙伴留言问我618、双11各大电商后端的技术,最多的是关于系统压力暴增情况下如何进行MySQL数据库优化的。 今天就结合我自己工作中的真实案例和大家分享一下吧。 前几年我待过一家创业公司,做的是商城业务。那两年公司业务迅速增长,用户从零积累到千万级别,每天访问量几亿次,高峰QPS高达上万次每秒。 赶上618、双十一大促期间,系统的写压力成倍增长,读业务的请求量更是在写业务的请求量的50倍。后面我们就面临了极具技术挑战性的数据库升级过程。 最初的技术选型,采用的是Java语言进行开发,数据库
Java3y
2022/09/13
2.8K0
高并发 MySQL 优化指南
MySQL读写分离
商品系统、搜索系统这类与用户关联不大的系统,效果特别的好。因为在这些系统中,每个人看到的内容都是一样的,也就是说,对后端服务来说,每个人的查询请求和返回的数据都是一样的。这种情况下,Redis缓存的命中率非常高,近乎于全部的请求都可以命中缓存,相对的,几乎没有多少请求能穿透到MySQL。
JavaEdge
2023/01/08
2.3K0
MySQL读写分离
单集群数据超千亿?微服务时代下,如何选择数据库?
在过去几年间,“微服务架构”这个术语持续火热,它描述了一种将软件应用程序设计为可独立部署的服务套件的特定方式。尽管这种架构风格没有确切的定义,但围绕业务能力,自动化部署,网点智能以及语言和数据的分散控制等方面存在着某些共同特征。
云巴巴
2021/10/12
6600
单集群数据超千亿?微服务时代下,如何选择数据库?
架构师眼中的高并发架构
前言 高并发经常会发生在有大活跃用户量,用户高聚集的业务场景中,如:秒杀活动,定时领取红包等。 为了让业务可以流畅的运行并且给用户一个好的交互体验,我们需要根据业务场景预估达到的并发量等因素,来设计适合自己业务场景的高并发处理方案。 在电商相关产品开发的这些年,我有幸的遇到了并发下的各种坑,这一路摸爬滚打过来有着不少的血泪史,这里进行的总结,作为自己的归档记录,同时分享给大家。 服务器架构 业务从发展的初期到逐渐成熟,服务器架构也是从相对单一到集群,再到分布式服务。 一个可以支持高并发的服务少不了好的服
用户1263954
2018/05/30
1.4K0
数据库分割扩展
因此,X轴是数据镜像,Y轴按主题分割数据,Z轴通过查找或取模分割数据。通常Z轴分割基于客户,但也可以基于产品ID或其他一些数值
码农戏码
2021/03/23
1.2K0
相关推荐
数据库读写分离架构,为什么我不喜欢
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档