跨国服务的帐号系统如何保证 CAP 理论中的 A (Available) ?

2017-11-25 15:40:40 +08:00
 qianjindapang

按照 CAP 理论,Consystency、Available、Partition 不可能同时被满足,但考虑上面标题写的情景,似乎三者都不能忽略:
1.跨国服务意味着需要 Partition,比如中国、美国各自都需要部署服务器,否则必定影响体验
2.帐号系统需要有强一致性保证
3.Available 这个就不用说了,谁都不需要服务不可用

那这样的系统该如何实现?
假如 Google 在中国能访问,而中国的出口网络又不稳定,Google 该如何实现它的帐号系统来提供最优服务?

2298 次点击
所在节点    程序员
11 条回复
GooMS
2017-11-25 16:16:03 +08:00
感觉这个事情要和业务结合起来,很多都是不需要实时的。
Shura
2017-11-25 16:33:45 +08:00
可以通过专线来保证出口网络的稳定性,https://buy.cloud.tencent.com/price/dc
Shura
2017-11-25 16:35:16 +08:00
@Shura https://cloud.tencent.com/product/dc,这个页面有更详细的说明(腾讯云专线接入网络延时可靠有保证,提供高于 99.5%的网络时延保障,您可以通过固定的路由配置免去拥堵或故障绕行带来的时延不稳定困扰),还有客户案例。
jingniao
2017-11-25 16:53:39 +08:00
这种账户应该是最终一致性吧……
zhx1991
2017-11-25 22:12:27 +08:00
CAP 系统里 P 不可避免

第二条又说要强一致性(C)

不可能可以做到 A

另外, CAP 里的 C 远远比通常认为的要强的多, 很多被认为是 CP 的系统都不满足 C
zhx1991
2017-11-25 22:14:37 +08:00
我感觉你误解了 A 的含义

在保证最终一致性的前提下, 满足 low latency 可能是你想要的
zhjits
2017-11-26 14:40:14 +08:00
搞根 1M 专线来做同步……
hantsy
2017-11-26 21:39:50 +08:00
Microservice 架构中经常到很重要的一点就是要权衡 C 和 A,一般都是两者之间做出选择。很多情况下都是保证 A 优先,通过消息 /事件异步方式做最到 [最终] 一致性即 C。
find
2017-11-27 00:24:13 +08:00
不知道 W R N 通过改变数值 来 choice AP or CP 是否满足你的需求
ryd994
2017-11-27 08:24:59 +08:00
又没叫你全不要,根据业务适当妥协。
zhaoweichen
2017-11-27 09:37:36 +08:00
"帐号系统需要有强一致性保证"里的的“强一致性”指的是什么 ( Strict/Sequential/Linearizability )?
每种模型对读写都会有不同的要求的,只说"强一致性"并不能推断出 A 和 P 具体需要舍弃什么。
lz 可以看看分布式系统的书或者课程,具体了解一下。
(比如讲 consistency model 的: http://lass.cs.umass.edu/~shenoy/courses/spring05/lectures/Lec15.pdf

另外,lz 要不要考虑一下虑安全问题?比如有一个或者多个账户节点被控制,传送错误信息 :)

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/409465

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX