专栏名称: 京东成都研究院
京东商城成都研究院信息平台
目录
相关文章推荐
51好读  ›  专栏  ›  京东成都研究院

咚咚异地多活建设探索

京东成都研究院  · 公众号  · 成都  · 2018-04-23 17:15

正文

前言


微博阿里腾讯之后,京东的异地多活来了,突破单个IDC机柜、带宽、电力等资源的限制,提高业务的高可用、系统的灾备能力和用户体验,咚咚作为成都研究院首批参与的项目,我们开始了我们的异地多活之路。本文将介绍异地多活的核心知识,异地多活所面临的问题,挑战与解决思路以及咚咚在多活上的架构设计等等,最后再给一些在多活这条路上的先行者们总结的经验和教训,共那些当前或者未来也要开展多活项目时提供参考。

首先什么是异地多活?

我们认为只有做到以下三点目标的才是一个多活业务:

1. 多个跨地域的数据中心 :异地的距离1000KM以上的范围,在中国范围内全国城市都可以去步;

2. 多点写 :每个数据中心都要承担用户的读写流量;

3. 分钟级切换 :任意一个数据中心出问题,其他中心都可以分钟级去接管用户的流量。


那异地多活的出发点是什么呢,我们为什么要做异地多活?

我们认为主要有以下两个原因:

1. 扩展需要 :随着咱们京东业务多元化发展,如电商,物流,金融等业务发展,单个分布式体系集群通过加机器,逐渐变得巨大,从而一定会在某个点上达到瓶颈。单个城市机房和网络容量资源也是有限的,因此提出了对异地部署的需求。

2. 容灾需要 :天灾,人祸都会影响业务可用性(如地震等自然灾害,光纤挖断等人为因素),如何保证业务持续可用?这也是一个重要的出发点。


既然选择了做异地多活,那么异地多活面临着哪些问题和挑战呢?

最大的问题 是延时

如1000+km大约30ms的网络延迟,看起来没什么,对用户来讲,如果只是增加30ms,其实基本感受不到。而实际在打开一个商品或订单页面时,背后有几十甚至上百次与后端交互,如果这么多次全部跨地域完成,意味着页面的响应时间将增加3s。对用户体验来说,页面打开很慢,甚至很多页面超时出不来了,这第一点是直接带来是业务产品不可用。对系统来说,当响应时间增高的时候,意味着同等QPS的要求下,将需付出更大的成本,因为原本吞吐能力下降了。


最大的挑战 是一致性

针对延时问题,采用多点写能解决这一点。但是,只要多点写了就会带来第二个最复杂的问题:数据一致性问题,也是最致命的。如订单交易多点写,用户两次访问分别在A数据中心、B数据中心写,两条数据如合不到一起的话。对用户最直观的感受是买了一个东西付了钱,然后看到可能是没付钱。或者买了一个东西,压根就没有看到购买记录。因此,多点写最大的挑战是怎么保证用户写入的数据一定是正确的地方,且是一致的。







请到「今天看啥」查看全文


推荐文章
笑的合不拢嘴  ·  唐僧去女儿国蹭饭,笑弯了腰!
7 年前
方舟子  ·  下棋梦
7 年前