加入收藏 | 设为首页 | 会员中心 | 我要投稿 河北网 (https://www.hebeiwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 业界 > 正文

做容灾,双活、多活、同城、异地、多云,到底应该怎么选?

发布时间:2019-03-19 06:14:37 所属栏目:业界 来源:Forrest随想录
导读:结论,可以直接拖到最后,假如看不大白,可以从新看起。 最近,公有云又出了些大妨碍,各大群和伴侣圈又开始沸沸扬扬,可是整体看下来,声音无非两种: 单站点不靠谱,要有容灾,呈现这种环境就得顿时切,以是归去赶忙建树容灾站点; 鸡蛋不能放在一个篮子
副问题[/!--empirenews.page--]

结论,可以直接拖到最后,假如看不大白,可以从新看起。

最近,公有云又出了些大妨碍,各大群和伴侣圈又开始沸沸扬扬,可是整体看下来,声音无非两种:

  • 单站点不靠谱,要有容灾,呈现这种环境就得顿时切,以是归去赶忙建树容灾站点;
  • 鸡蛋不能放在一个篮子里,单云不靠谱,要多云。以是,多云就要选我们家的xx云,可能我们提供xx多云处事。

我在我的一个接头群里就提出来,第一种声音是故意识的建树,有这个意识很好,可是把这个工作想得太简朴了。第二种声音,根基就是不动脑筋的瞎BB,缘故起因我下面讲。

做容灾,双活、多活、同城、异地、多云,到底应该怎么选?

转回正题来,既然上篇提到主备模式不靠谱,那到底怎么选?并且成天见种种技能文章,不是双活,就是多活,不是同城,就是异地,此刻又出来个多云,好伟大。

下面我就谈谈我的领略:

起首,这么多名词是什么寄义,要搞清晰,然后再看适不得当。

先讲相对简朴的双活(简不简朴,看后头就大白了),着实就是两个站点,同时承载营业流量,可以按照用户ID、区域可能其他营业属性也抉择怎么分管流量,当一个站点妨碍时,可以快速(分钟级)切换到另一个站点,抱负环境下,对营业根基是无损可能很是小的。

这里就跟前面讲的主备差异了,主备的另一个站点完满是不承载任何流量的。

这里再往深里看一眼,同时承载流量,也要看承载到那一层,也就是流量在同一站点内闭环,全部挪用都是本机房内完成,照旧只有应用层这样的无状态组件双活,可是数据会见、异步动静这些有状态的部件照旧回到主站点挪用,这两种模式又是纷歧样的。

着实第二种,就比前面讲的主备模式要好一些,由于这样至少可以担保应用层随时可用,不外真出妨碍的时辰,照旧少不了数据层的切换,这个着实长短常耗时的。跟主备模式一样,根基无法演练,由于价钱太高,数据会有损。(假如数据层没有这么伟大,只有几个数据库,那是没题目题目的,可是漫衍式的场景下,上百个,几百个实例切换,这个价钱和本钱照旧很大的。)

以是,再往下推导,假如想要做到有结果的双活,就必需担保每个站点,都是独立运行,全部的挪用都是本机房挪用且闭环,底层做好数据同步即可。

只有做到这个水平,当一个站点产生妨碍不行用时,就可以从接入层把妨碍站点的流量切换到另一个站点,双活的结果也就有了。

不外,做到这个水平,就不是说我们想要做就能做到的,假如您做个相同的架构计划,你会知道这里有三个要害的技能点:

第一个,本机房挪用

也就是一个漫衍式哀求不能跨机房调来调去,这个是不可的,必必要担保本机房挪用闭环。以是从漫衍式处事的路由计策上,以及处事化框架上,必需得支持这也中挪用模式,同理,数据会见层,以及动静组件也要支持这种特征。

第二个,数据分片和同等性

为什么要做这个工作?我们知道一个体系中数据精确性、完备性和同等性长短常要害的,放到双活这个场景下,最要害的就是数据同等性,我们不能应承有统一个记录双方同时在改观,还要双向同步,好比用户买卖营业和付出类的数据,同时改观的环境下,我们无法确认哪边是精确的。

前面提到,两个站点是同时承载差异的流量的,这就要按照一些营业属性来分派,好比用户ID、所属区域等等计策,这里为的就是可以或许在数据层面也要做好断绝,一个站点内只提供牢靠部门的用户会见。

这样就担保了单站点内统一分片的数据,不会在其它一个站点被改观,后续的同步也可以做到单向。

以是,这里的要害,就是数据要做分片,就要用到漫衍式的数据中间件,要做数据会见的路由计划,数据要同机房读写,还要做数据拆分这样的事变,技能门槛和事变量也不低。

这两点假如可以或许做到,着实就是我们常常说的“单位化”架构告竣了,理论上,我们可以选择任何一个机房和区域,把体系搭建起来,就可以提供营业会见了。

但实际是更为伟大的,由于用户营业体系发生的数据,有也许会被其余体系用到,好比商品库存这样的体系,这就要涉及异步动静和数据的同步题目,而数据同步不只仅是一个技能题目,而是个物理题目,我们接下来讲。

第三个,数据同步。

着实单从同步角度而言,今朝许多的同步器材和开源产物已经较量完美,以是这里最大的题目,着实不在技能层面,而是在物理层面。

精确点,就是物理间隔上的时延题目,这个无论是双活、多活,照旧同城、异地,都绕不开的疾苦题目。

既然要双活,肯定会选择另一个跟当前机房有必然间隔的机房(同城或异地),并且间隔必需得拉开才故意义,假如都在一个园区内里,就没有任何容灾意义了。

间隔一旦拉开,物理间隔就出来了,纵然是专线相连,中间也要颠末许多收集装备,假如是云化的收集架构下,颠末的软硬装备就更多,尚有也许涉及协议转换,假如半途跨运营商,就更难保障,这样一来时延必定是几倍、十几倍,乃至是上百倍的上涨,直接从0.x毫秒,上涨到秒级别。

对付同城来说,这个题目还好,可是一旦跨省就完全不行控,出格是机房假如不是本身的,基础无法节制。以是,想大公司自建机房,必然会在这个层面做大量的优化,尽最大也许低落时延。

就以淘宝、天猫为例,凭证之前相识的环境,根基也是杭州和上海这两个都市为主做双活,再远时延这个题目就绕不开了。

数据同步实时性为什么这么重要,一个是营业体验,不能说库存都没了,其他用户看到的照旧有货,,这个是不会被接管的。

再就是妨碍时,假犹如步不实时,极有也许造成几秒钟内的买卖营业数据丢失,可能纷歧致,像淘宝这样每秒4位数订单量的体系,丢几秒钟数据,造成的丧失也是庞大的。以是,这里就必必要建树有一整套的数据完备性和同等性保障法子,尽最洪流平低落营业丧失。

以是,数据同步所依靠的时延题目,着实就已经超出了绝大部门公司所能掌控的领域,也不是纯真靠自身技能能办理的题目,要看天时和地利。

讲到这里,我想多活就不消讲了,时延这个题目办理不了,多活就是扯淡,至于同城和异地,我想看大白的读者,也知道怎么选择了,着实一样,照旧取决于时延。

我们可以得出的几个结论:

(编辑:河北网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读