首页
正文
2018/12/07

干货!IT架构的“读写分离”设计实现思路

彭晓武

你见过凌晨四点的洛杉矶吗?
科比见过
那是他新一天训练时间的开始

你见过凌晨四点的北京吗?
地铁工作人员见过

当第一辆列车于5点准时驶出时
它的工作人员早在一个小时前就开始了工作
迎接“高并发”时刻的到来

地铁分流

栏杆围成七拐八拐迷宫一般的通道

进站和出站的人流按照指定的路线前行

为的就是舒缓运输压力,

让地铁运行高效、有序

这个思路在IT系统里也有着异曲同工之妙

“读”和“写”有点像一对冤家

一块磁盘如果同时进行读和写工作,

势必会影响整体性能的发挥

因而“读写分离”思路应运而生

 

分享一篇“硬核”文章

介绍IT架构的“读写分离”设计思路

如果把公司经营比作摩天大楼,IT系统架构就相当于摩天大楼的地基,如今越来越多的IT人士开始重视系统架构设计。但架构设计非常复杂,其复杂性主要来源于IT系统的高性能、高可用、高扩展需求,而“读写分离”则是架构设计中解决这几个需求的关键设计思路之一。

读写分离原理本身非常简单,即读、写操作的实现由不同资源独立完成,但要考虑到资源分配的合理性和数据同步的时效性,读写分离技术真正用起来也并不是看着那么简单。

目前,在企业的IT架构中,读写分离设计思想的应用确实存在改善空间。笔者将尝试从四个不同层面对读写分离设计思路的应用进行整体阐述,包括表示层、数据库层、缓存层和存储介质层。

 

表示层读写分离设计

表示层是后台提供给客户端的入口,读写分离设计主要体现为动静分离。以Web为例(如下图),后台既有html、图片、JS/CSS等基本维持不变的静态页面,该部分页面以读操作为主,也有针对不同用户、不同场景进行定制化的变化页面,该部分页面需要读写结合。

表示层读写分离设计实现

Web读写分离的应用,有以下多方面益处:

➤ 第1, 可缩短静态页面的访问路径、改善用户体验。

➤ 第2, 动态页面静态化,进一步改善系统性能。

➤ 第3, 预留更多资源用于处理访问路径更长的动态页面。

在动静分离的应用过程中,需要注意的是,页面静态化不宜过度,否则会因静态页面太大反而导致用户体验降低。

 

数据库读写分离的设计

一谈到读写分离,很多人往往最先想到数据库。随着业务的快速发展和数据的高速增长,传统关系数据库软件的性能瓶颈逐渐凸显,进而影响了扩展能力甚至可用性,这对用户来说是不可接受的。为此,数据库平台纷纷推出主从集群模式应用读写分离技术。

数据库主从集群如下图所示▼。

数据库读写分离设计实现

简单来说,主从模式就是数据库主机负责写操作,数据库从机负责读操作,通过合理分配算法,从机可以大幅减轻主机的负载,从而提高性能。

引入数据库从机后,需要额外考虑读写操作分配和数据库连接管理,主要有应用层实现和中间层实现两种方式。

 

>>>>应用层实现数据库读写分离

在应用层可以通过配置多数据库来源实现读写分离,在应用模块中对读写请求进行分流,对此业界有不少平台可以实现,包括Spring JDBC、Hibernet等。这种实现方式不需要额外引入中间件,因而具备策略灵活、易于调整、实现简单的特点,但该方式也增加了应用层的复杂性,包括分流、均衡、安全等方面都需要考虑。

由于扩容过程中读写分离策略变更等比较复杂,应用层读写分离主要用于小规模应用系统。

应用层读写分离设计实现

>>>>中间层实现数据库读写分离

引入中间件,也是另一种读写操作分配的实现方式,其原理是由中间层提供SQL接口供业务访问,后台读写操作由中间件统一处理。该方式能向业务屏蔽数据库节点的故障,简化业务设计,但中间件本身的性能也需要特别关注。

另外,由于数据库主从之间的数据同步必然导致数据库从机缺失少量最新数据,可通过多种方式解决此类问题。以MySQL为例(MySQL Router如下图),有三种解决思路比较常见。

中间层读写分离设计实现

➤ 第1, 在数据库写入操作完成后,可以将读操作指定发给数据库主服务器。

➤ 第2, 从机读取失败后再读一次主机。

➤ 第3, 也可以将关键业务读写操作全部指向数据库主机。

需要注意的是,三种方式需要相互结合。


缓存层读写分离的设计

针对读多写少的数据库,有一种在大型系统中非常普遍有效的方法,就是采用专用缓存数据库,将热点数据复制到缓存节点的大内存中,为大批量的读取操作更快速地提供数据,从而减轻主数据库的负载压力。这类缓存数据库读取性能非常高,通过缓存数据库节点的横向扩展后则性能更高。以MemCache为例,单节点简单查询TPS可达50000以上,多节点查询TPS则呈准线性增加。

在缓存数据库的应用过程中,热点数据管理粒度是一个非常关键的问题,粒度太大,达不到最佳的缓存效果;粒度太小,则耗费过多的系统资源。在多节点应用对缓存进行操作时,可能出现缓存失效引起性能急剧下降的问题,所以在应用平台上需要引入ZooKeeper等集群管理组件对多节点的缓存操作进行有效管理。


缓存层读写分离设计实现


存储介质层读写分离设计

存储介质是数据的最终归属地,谈及IT性能优化,存储介质是个避不开的话题。由于固态硬盘(SSD)相对于机械硬盘有数百倍的性能提升,且每TB价格越来越接近机械硬盘,因此固态硬盘成为IT行业的香饽饽,几乎每一个大型应用都需要考虑使用固态硬盘。

从读写分离的角度看,目前的应用主要基于SSD缓存,但大部分SSD缓存技术仅能实现读缓存,如此高价值的SSD竟然没能作为永久存储使用,不得不说是一个遗憾。不过受戴尔易安信SC系列存储系统“读写分离”技术的启发,这个遗憾是完全能避免的。

戴尔易安信存储SC系列

细究该“读写分离”技术,其实现原理很容易理解。SSD分为写密集型和读密集型两种,其中,写密集型SSD的DWPD(Drive Writes per Day)通常大于10,远高于读密集型SSD,写入寿命更长,而且写入性能也高出读密集型SSD数倍。

另外,各种RAID技术如下图所示▼。

RAID技术比较

RAID 10的写惩罚要优于RAID 5数倍,所以写入性能也要高出不少。“读写分离”技术的实现原理就在于利用这两方面的差异。

一方面,写入操作时,重负载I/O写操作基于RAID10的写密集型SSD,另一方面,通过软件调度,把写密集型SSD上的数据在后台自动迁移到读密集型SSD,并将RAID10在后台自动转换成RAID5,从而使得读操作主要由基于RAID5的读密集型SSD承载。难能可贵的是这项技术不仅可以提高性能,也能兼顾到成本效益。

I/O读写

该技术已经被不少技术前瞻性较高的企业或组织采用。例如,华中某科技公司的邮件系统,邮箱数量上万,系统改造前,I/O延时达到10毫秒左右,已经满足不了企业对于员工体验和工作效率的需求。

架构师对整套系统进行了分析,发现写入操作占比70%左右,由于RAID5方式的写惩罚、写入操作对存储介质IOPS的消耗非常大,架构师尝试将存储改成RAID10的方式,但容量利用率又满足不了企业的实际需求。

最后,架构师通过引入戴尔易安信SC存储的读写分离技术进行优化,即采用写密集型和读密集型两种SSD,并采用RAID10和RAID5两种RAID方式动态组合,由存储系统自动完成调度。最终,系统I/O延时下降到1毫秒以内,这次优化显著提升了该公司邮件的收发效率。

戴尔易安信SC全闪存存储阵列

在“读写分离”设计思路的实际应用中,要根据不同应用系统的需求,将表示层、缓存层、数据库层和存储介质层部分结合使用,以补足薄弱环节。

从当前各行业对“读写分离”设计思路的应用来看,笔者观察到互联网行业走在最前面,政企、医疗、教育行业也都已经开始广泛引入,相信“读写分离”架构设计思路会服务于越来越多的行业和用户,进一步夯实IT系统这座摩天大楼的地基。


在线咨询
项目咨询
采购咨询专线400-884-6610
订阅偏好享优先通知
热门评论
暂无相关评论
删除回复
回复
删除回复
更多回复
查看全部条评论
{{dataFromApi ? '您是否在找' : '其他企业都在看'}}
{{item.slogan}}
{{item.slogan}}
{{item.title}}
咨询客服获取特惠价{{item.sale}}{{item.price}}{{item.sale}} {{item.price}}
项目咨询
发表评论...
  • 在线客服
    联系客服
    (工作日 08:30-17:30)
  • 项目咨询
  • 采购咨询专线
    400-884-6610
    (工作日 08:30-17:30)
  • 售后咨询专线
    7*24小时客户支持
    400-886-8616
    400-886-8618
取消发送
取消发送
热门评论
删除回复
回复
删除回复
更多回复
暂无相关评论
发表评论...
发送
彭晓武
删除该评论,是否确认操作?
取消
确认

参与问卷提交即有机会成为幸运用户,

赢取精彩礼品一份,寻找幸运的你,快来参与吧!

立即参与>>
5秒后自动关闭
取消
最近搜索
    热门搜索
    • AI PC
    • 2025新品
    • Dell Pro 笔记本
    • Dell Pro 台式机
    • Dell Pro Max 工作站
    • Dell Pro 显示器
    • 17G 服务器
    • 数据存储
    • 数据保护

    如果您对当前页面内容感兴趣,

    可填写“项目咨询单”,

    进行专业咨询及帮助。

    戴尔企采中心
    戴尔专线客服
    暑期大放价,焕新3.7折起!注册享免费抽奖、0元试用、千元好礼、万元服务、资产回收等。详情咨询在线客服或拨打400-884-6610
    请在这里输入内容
    发送
    管理您的Cookie
    戴尔使用不同类型的 Cookie 来优化您的体验并启用某些网站功能,改善您的整体网页浏览体验。请注意,如果阻止 Cookie,则可能会影响您的网站体验,并可能对我们可提供的服务或功能造成影响。
    基本

    允许用户在我们的网站上移动以及提供访问诸如您的个人资料和购买、登录凭据以及网站其他区域等功能的访问权限。

    营销

    用于了解我们网站上的用户行为,并展示与您的兴趣更相关的广告。

    统计

    通过收集和报告信息,帮助我们了解访问者如何与我们的网站互动。

    * 点击确认按钮或关闭Cookie弹窗代表您已同意以上内容。

    拒绝
    确认
    取消
    确认
    请确认您的邮箱地址,
    我们会发送下载链接至您的邮箱。
    请填写正确邮箱
    您的企业近期是否有采购 IT 产品的计划?
    请选择
    提交并获取下载链接
    提交成功,下载链接已发送到您的邮箱,
    请查收!

    戴尔发布针对AI领域服务器产品

    还剩2页未读

    图片标题

    戴尔发布针对AI领域服务器产品

    批量议价
    填写您的感兴趣的产品及个人信息,提交成功后会有专人与您沟通,为您提供专属底价。
    OptiPlex 3050微塔式机和小型机Tower249020OptiPlex 3050微塔式机和小型机Tower249020OptiPlex 3050微塔式机和小型机Tower249020OptiPlex 3050微塔式机和小型机Tower249020
    为通用型商务应用程序设计的可靠为通用型商务应用程序设计的可靠为通用型商务应用程序设计的可靠
    型号

    8G 1TB SAS H330 DVDRW 495W

    参考价格
    6499.006499.00咨询客服获取特惠价
    意向购买数量
    1
    * 公司名称
    请输入公司名称
    * 姓名
    请输入姓名
    * 手机
    请输入手机
    * 邮箱
    请输入邮箱
    * 需求描述
    请选择
    采购专线
    联系客服
    提交
    *验证码无效
    确认
    全新PowerEdge DSS8840
    DSS8440是一款2路4U服务器,旨在为机器学习应用提供极高的性能,配备多达10个加速器
    PowerEdge DSS840 型号1
    PowerEdge DSS840 型号2

    恭喜您,秒杀成功!

    后续工作人员会与您进行联系

    抱歉,您没有抢到!

    您还可以参与其他产品的秒杀活动哦

    请输入兑换码

    PowerVault ME4012
    限时免费升级 / 提速不加价 / 性能秒提7倍
    限时促销
    5秒后自动关闭

    感谢您的报名

    返回首页
    请输入验证口令
    复制以下链接观看视频
    复制
    Toast 内容
    补全信息
    请补全您的身份信息
    * 姓名
    请输入姓名
    * 企业邮箱
    请输入企业邮箱
    * 公司全称
    请输入公司全称
    提交
    请准确填写您的邮箱
    完整报告即时发送到您的邮箱
    * 姓名
    请输入姓名
    * 企业邮箱
    请输入企业邮箱
    * 公司全称
    请输入公司全称
    提交
    请选择标签,将有助于提供精准服务
    您对哪类产品感兴趣?
    • 云
    您将应用于哪个领域?
    • 大数据
    • 软件定义
    请输入您的企业邮箱与手机号,方便后续发送资料
    企业邮箱

    请输入企业邮箱

    手机号

    请输入手机号

    订阅成功

    我们将每月通过邮箱发送资料报告发给您

    成功图片
    关闭
    文章标题
    文章标题
    文章标题
    文章标题
    订阅您感兴趣的内容,我们将每月通过邮箱发送资料报告发给您
    开启订阅
    长按扫码关注戴尔企采网
    了解更多企采会员福利
    长按识别跳转小程序
    手机号绑定
    手机icon图标

    请输入手机号

    验证码icon图标
    获取验证码

    请输入验证码

    绑定手机号
    绑定手机号的三大理由
    1.网信办规定,互联网注册用户要提供基于移动电话号码等的真实身份。
    2.微信授权登录出现故障时,仍用手机号顺利登录,会员各项权益及活动不受影响。
    3.绑定手机号即可享受免费抽奖、0元试用、积分兑换好礼等会员权益。
    loading请稍后...
    订阅弹层
    订阅表单弹层
    邮箱:
    姓名:
    订阅成功弹层
    {{form.textBtnText}}
    {{form.textBtnText}}
    {{form.subBtnText}}
    去注册
    {{form.textBtnText}}
    获取“戴尔资产报告”
    请提供设备使用方的相关信息,以免影响后续保修
    立即获取
    获取“戴尔资产报告”
    您已提交成功,请您注意查收邮件,“戴尔资产报告”将在2个工作日以邮件的形式发送给您
    查看设备保修情况
    注册有礼
    去认证