技术开发 频道

完全不丢数据 网易RDS高可用技术实现记

  【IT168 评论】谈到网易,大家会想到什么?有态度的网易新闻?网易游戏?还是网易养猪?当然最近网易邮箱事件着实火了一把!很多人在说,网易掉队了,被BAT甩的越来越远。虽然不无一定的道理,但抛开BAT来说,网易依然是现今中国最赚钱的互联网公司之一,京东市值虽高但还在苦苦追求盈利。网易的这种状态与掌门人丁磊的性格有直接关系,稳重低调不冒尖,闷声发大财,很少玩概念。其实网易旗下有很多有情怀又靠谱的好产品,如云音乐,网易公开课等等,当然如今又多了1个网易云。

完全不丢数据 网易RDS高可用技术实现记
▲网易杭州研究院资深开发工程师郭忆

  10月22日在北京新云南皇冠假日酒店召开2015中国系统架构师大会上,网易杭州研究院资深开发工程师郭忆发表了主题为《网易云数据库高可用架构设计》的演讲。老鱼用了近一个小时时间认真的听完,郭忆演讲核心是Netease RDS高可用技术实现。

完全不丢数据 网易RDS高可用技术实现记

  网易云计算立项于2012年,网易私有云于2012年4月上线。网易云从形式上来看与AWS、阿里云等类似,是IaaS+PaaS的云计算平台。与阿里云百度云类似,网易云从诞生起,同样是立足于为网易自身各类互联网产品而服务,因此在性能、稳定性方面有很高的要求,目前网易云已经覆盖网易主要互联网产品。

  在构建稳定可靠的应用架构时,数据库是最底层、最稳定的组件之一;在云环境中,RDS 提供一个7*24小时不间接访问的云服务,可用性达到99.95%。Netease RDS是网易数据库技术团队基于开源MySQL分支InnoSQL打造的云端数据库托管平台,在业界首次实现了完全不丢数据的MySQL主从切换技术,一旦主机节点发生故障,秒级切换到备节点,服务可用性高达99.95%,并承诺切换前后数据完全一致。看到这里,相信所有人与老鱼一样关心完全不丢数据的MySQL主从切换技术是如何实现的?

  Netease RDS 研发之初摆在网易技术团队面前的挑战有6个,分别是高可用、高可靠、高性能、在线伸缩、运维自动化、编程接口。其中排在第一位的就是高可用,而高可用首要解决的就是MySQL主从数据库切换丢失数据的问题。网易技术团队为此也参考了当前业界各种高可用方案,如下图:

完全不丢数据 网易RDS高可用技术实现记
▲业界各种高可用方案

  似乎都不那么尽如人意,不是运维成本过高就是对性能有损,又或者有前提条件,还有通用性不佳,存储引擎有局限等各类问题。当然在研究过程中,不可避免的踩过不少坑。最终网易技术团队决定自主研发,由此产生了网易自己的同步复制技术, 原理可能看对比图更容易清晰。

完全不丢数据 网易RDS高可用技术实现记

完全不丢数据 网易RDS高可用技术实现记

完全不丢数据 网易RDS高可用技术实现记

  虚拟同步复制技术:Netease RDS主从节点之间使用虚拟同步复制技术,该技术能够确保所有主机的更新事务在提交前都首先在从机上落盘,从而保证主从切换后数据完全一致。

  并行复制技术:Netease RDS 在从节点上使用了并行复制技术,大幅提高从机回放主机事务的速度,复制延迟消失,保证了主从切换在秒级完成。

完全不丢数据 网易RDS高可用技术实现记

  目前,网易线上部署超过1200个MySQL节点,经过网易自身实践,平均故障恢复时间3秒以内!RDS集群已经为网易数百个产品提供数据库服务。

0
相关文章