V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
qianjindapang
V2EX  ›  程序员

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

  •  
  •   qianjindapang · 2017-11-25 15:40:40 +08:00 · 2383 次点击
    这是一个创建于 2556 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

    第 1 条附言  ·  2017-11-26 10:13:56 +08:00
    这又是个比较泛的问题了,涉及到很多知识,可能需要系统的学习一下,找到下面这些资料
    https://github.com/donnemartin/system-design-primer
    https://github.com/checkcheckzz/system-design-interview
    11 条回复    2017-11-27 09:37:36 +08:00
    GooMS
        1
    GooMS  
       2017-11-25 16:16:03 +08:00 via Android
    感觉这个事情要和业务结合起来,很多都是不需要实时的。
    Shura
        2
    Shura  
       2017-11-25 16:33:45 +08:00
    可以通过专线来保证出口网络的稳定性,https://buy.cloud.tencent.com/price/dc
    Shura
        3
    Shura  
       2017-11-25 16:35:16 +08:00
    @Shura https://cloud.tencent.com/product/dc,这个页面有更详细的说明(腾讯云专线接入网络延时可靠有保证,提供高于 99.5%的网络时延保障,您可以通过固定的路由配置免去拥堵或故障绕行带来的时延不稳定困扰),还有客户案例。
    jingniao
        4
    jingniao  
       2017-11-25 16:53:39 +08:00 via Android
    这种账户应该是最终一致性吧……
    zhx1991
        5
    zhx1991  
       2017-11-25 22:12:27 +08:00
    CAP 系统里 P 不可避免

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

    不可能可以做到 A

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

    在保证最终一致性的前提下, 满足 low latency 可能是你想要的
    zhjits
        7
    zhjits  
       2017-11-26 14:40:14 +08:00
    搞根 1M 专线来做同步……
    hantsy
        8
    hantsy  
       2017-11-26 21:39:50 +08:00
    Microservice 架构中经常到很重要的一点就是要权衡 C 和 A,一般都是两者之间做出选择。很多情况下都是保证 A 优先,通过消息 /事件异步方式做最到 [最终] 一致性即 C。
    find
        9
    find  
       2017-11-27 00:24:13 +08:00 via iPhone
    不知道 W R N 通过改变数值 来 choice AP or CP 是否满足你的需求
    ryd994
        10
    ryd994  
       2017-11-27 08:24:59 +08:00 via Android
    又没叫你全不要,根据业务适当妥协。
    zhaoweichen
        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 要不要考虑一下虑安全问题?比如有一个或者多个账户节点被控制,传送错误信息 :)
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2497 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 15:48 · PVG 23:48 · LAX 07:48 · JFK 10:48
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.