作家
登录

网易数据传输服务NDC高可用实践

作者: 来源: 2017-05-04 20:57:35 阅读 我要评论

高可用实践

【51CTO.com原创稿件】NDC全称Netease data canal,即网易数据运河,是一个平台化的构造化数据传输体系,目标是解决构造化数据的及时迁徙、同步、订阅、OLTP到OLAP的及时数据整合等问题。我们欲望可以或许借此将数据库中的数据与其他体系打通,大年夜而构建一个可以或许整合所稀有据库的“数据运河”,任何体系都可以或许大年夜“运河”中获取数据。

此次由51CTO主办的2017WOTA全球架构与运维技巧峰会上,网易资深工程师马进师长教师分享了主题为《网易数据传输办事NDC高可用实践》的演讲。

应用处景

大年夜应用方视角看来,可以将NDC的应用处景分为三类:第一类是数据迁徙,像DDB到Oracle如许的异构数字迁徙,同时可以解决DDB内部在线扩容问题和迁徙问题。第二类数据同步,场景较为复杂一些,如跨域甚至跨国的数据及时同步,一般不强调异构,须要解决的是高延迟,复杂拓扑治理的问题。第三类数据订阅,经由过程数据来驱动营业,实现营业间异步解耦。

最后,经由过程这些应用处景可以总结出NDC的两个核心需求:第一,获取数据库及时变革的才能。第二,数据快速宣布的才能。如MySQL到Oralce的数据迁徙,须要增量迁徙的速度要比MySQL线上增量更新快,不然相迁徙或者同步永远无法完成,这就考验NDC数据宣布的速度。别的一点,是须要NDC供给完美的高可用筹划,许可数据反复,然则不克不及丢,还要供给一个一向办事的才能。

Center高可用,也就是网易调剂中间的高可用。分享前,马进师长教师先同大年夜家道述了脑列问题。严格地说,经由过程zookeeper或keepalived筹划实现的高可用,并不克不及避免逝世锁情况的产生,为此NDC经由过程又在数据库加锁的方法完全规避了脑裂的可能:具体做法是在每次做运维操作前先测验测验把leader锁住,再把数据掏出,比较和当前的ID是否一致,如不雅一致就可以做响应的运维操作。切主的时刻,也是现场时把leader锁住再更新。经由过程锁的方法可以包管运维操作和切主的过程是互斥的,大年夜而可以避免脑列问题的产生。然则在这之前也有两个根本前提:第一个就是所有的Center是保持在体系库,其次就是体系库是高可用的。

产品形态

NDC的产品形态有两大年夜特点:一是平台化,二是插件化。

平台化,网易自有一个平台化的Web治理对象,重要负责其资本治理和调剂,以及平台化报警监控。

插件化,是对不合数据源、物理端经由过程applier插件进行的敏捷开辟,以及账号体系插件化。NDC作为底层的中心件可以或许支撑不合平台,像网易的公有云,就会依附到NDC。不合帐号体系之间也是不太一样的,当想要接入不合的┞肥号体系,却不做插件化的话,成本也就会比较高,并且会使体系变得比较复杂。所以NDC想到的方檀卷是体系本身不具备用户治理功能,更多是把用户作为一个类型存储到义务的属性里。然后在治理层向外部做数据用户认证。

体系架构

网易是有体系库的,然则不消来做用户治理,反而会在API办事里定义不合的用户监护插件,当不合平台的用户介入到API办过后,网易会调用不合的插件去认证所对应的用户。认证后会将用户打码,经由过程中间的Center记录到人物属性中去,在这里就能实现用户接人道的插件化。Center组件也就是调剂监控中间,今朝应用主备模式实现高可用。

运维治理的API治理组件图

迁徙和订阅的履行节点图

经由过程给履行节点划分节点组,达到物理隔离的效不雅,类似于公有云可用域的概念。数据源NDC今朝支撑DDB、Oracle,SQL Server等,目标端除了关系型数据库以外还支撑Hbase,Greenplum等支撑数据更新的数据仓库。数据订阅就拭浇轹量数据宣布到Kafka,履行节点的每一个迁徙都是自力的过程,如许就可以避免不合过程间的互相竽暌拱响。

义务高可用须要留意的是,须要主动检测源端是否活泼,如不雅发明源端断了,向Center上报,如不雅Center监测源端可用的话就可以将义务进行漂移,把本来Engine上的义务漂移到另一个Engine上;如不雅检测源端是弗采取的,就会测验测验将源端漂移到大年夜库上。

【51CTO原创稿件,合作站点缀载请注明原文作者和出处为51CTO.com】

【义务编辑:鸢玮 TEL:(010)68476606】

高可用的设计原则:起首,监控要先于高可用。其次,高可用的分层不要过度设计。像推敲Center高可用的时刻相当于做了层次划分,Center高可用起首依附于体系库高可用。第三,高可用插件化,保持体系简洁。第四,多重验证,避免误切。最后,源端漂移问题。如不雅说袈浯端产生了漂移,那么怎么包管数据不丢?马进师长教师分享了一个异常简单的筹划,就是依附MySQL的GTID功能。还有基于触发器,经由过程触发器可以把增量数据直接导入表里,如许数据就是不会丢的。



  推荐阅读

  “互联网+”为家庭医生普及提供新思路

一些有名的移动医疗平台正在摸索家庭大夫模式,比拟线下家庭大夫,经由过程移动医疗平台建立起来的家庭大夫社群,虽在模式上与线下无异,但并不是完全意义上的官方版家庭大夫,其所受的限>>>详细阅读


本文标题:网易数据传输服务NDC高可用实践

地址:http://www.17bianji.com/lsqh/35020.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)