知识卡片

跨国异地:延迟量级已改变"多活"的含义,真正落地只有两种场景

普通读书笔记卡

内容

跨国异地指业务部署在不同国家的多个机房,相比[[跨城异地:网络延迟质变,逼出”按数据类型分类应对”的设计逻辑]],距离更远,正常情况下数据同步延时能达到几秒钟——这个延迟量级已经无法满足异地多活的第一条判断标准”正常情况下用户访问任意地点的业务系统都能得到正确的服务”:比如一个微博类网站同时在上海和纽约建了机房,用户A在上海发了一条微博,如果他的关注者B恰好访问的是纽约机房,很可能根本看不到这条刚发的微博。跨城异地也存在类似的同步延时问题,但那是几十毫秒级别,用户基本无感知;跨国异地是秒级延迟,用户能明显感觉到。正因如此,跨国异地的”多活”,和跨城异地的”多活”实际含义已经不完全一样了,它真正能落地的应用场景只剩两种。一是为不同地区的用户分别提供独立服务——比如亚马逊中国只服务中国用户、亚马逊美国只服务美国用户,两边账号体系互不相通,中国用户没法用亚马逊中国的账号直接登录亚马逊美国,本质上这是两套相对独立、只是共享部分基础设施的系统,而不是同一份数据在两地保持”多活”。二是只读类业务做多活——比如谷歌搜索,因为用户搜索的资料本身已经预先存在于搜索引擎里,不管访问的是英国谷歌还是美国谷歌,搜索结果基本一致,用户也不需要拿到毫秒级最新的数据,跨国的几秒延迟对搜索结果几乎没有实质影响,这种”不追求最新数据、只追求可用”的场景正好能容忍跨国级别的延迟。

参考来源

- 位置:《从零开始学架构》第28讲《业务高可用的保障:异地多活架构》"架构模式"之"跨国异地"(源文件:_epub-src/OEBPS/text00002.html) - 结论依据:原文说明跨国异地"数据同步的延时会更长,正常情况下可能就有几秒钟了。这种程度的延迟已经无法满足异地多活标准的第一条",并以微博两地用户看不到最新内容为例,最后指出"跨国异地多活的主要应用场景一般有这几种情况:为不同地区用户提供服务……只读类业务做多活"并分别以亚马逊中国/美国、谷歌搜索为例,直接支撑本卡片结论。 - 原始内容:数据同步的延时会更长,正常情况下可能就有几秒钟了。这种程度的延迟已经无法满足异地多活标准的第一条……跨国异地多活的主要应用场景一般有这几种情况:为不同地区用户提供服务……只读类业务做多活。