按照 CAP 理论,Consystency、Available、Partition 不可能同时被满足,但考虑上面标题写的情景,似乎三者都不能忽略:
1.跨国服务意味着需要 Partition,比如中国、美国各自都需要部署服务器,否则必定影响体验
2.帐号系统需要有强一致性保证
3.Available 这个就不用说了,谁都不需要服务不可用
那这样的系统该如何实现?
假如 Google 在中国能访问,而中国的出口网络又不稳定,Google 该如何实现它的帐号系统来提供最优服务?
1
GooMS 2017-11-25 16:16:03 +08:00 via Android
感觉这个事情要和业务结合起来,很多都是不需要实时的。
|
2
Shura 2017-11-25 16:33:45 +08:00
可以通过专线来保证出口网络的稳定性,https://buy.cloud.tencent.com/price/dc
|
3
Shura 2017-11-25 16:35:16 +08:00
@Shura https://cloud.tencent.com/product/dc,这个页面有更详细的说明(腾讯云专线接入网络延时可靠有保证,提供高于 99.5%的网络时延保障,您可以通过固定的路由配置免去拥堵或故障绕行带来的时延不稳定困扰),还有客户案例。
|
4
jingniao 2017-11-25 16:53:39 +08:00 via Android
这种账户应该是最终一致性吧……
|
5
zhx1991 2017-11-25 22:12:27 +08:00
CAP 系统里 P 不可避免
第二条又说要强一致性(C) 不可能可以做到 A 另外, CAP 里的 C 远远比通常认为的要强的多, 很多被认为是 CP 的系统都不满足 C |
6
zhx1991 2017-11-25 22:14:37 +08:00
我感觉你误解了 A 的含义
在保证最终一致性的前提下, 满足 low latency 可能是你想要的 |
7
zhjits 2017-11-26 14:40:14 +08:00
搞根 1M 专线来做同步……
|
8
hantsy 2017-11-26 21:39:50 +08:00
Microservice 架构中经常到很重要的一点就是要权衡 C 和 A,一般都是两者之间做出选择。很多情况下都是保证 A 优先,通过消息 /事件异步方式做最到 [最终] 一致性即 C。
|
9
find 2017-11-27 00:24:13 +08:00 via iPhone
不知道 W R N 通过改变数值 来 choice AP or CP 是否满足你的需求
|
10
ryd994 2017-11-27 08:24:59 +08:00 via Android
又没叫你全不要,根据业务适当妥协。
|
11
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 要不要考虑一下虑安全问题?比如有一个或者多个账户节点被控制,传送错误信息 :) |