Uber 架构(2)ringpop

作者: zidea | 来源:发表于2019-03-21 08:03 被阅读34次
    ringpop.jpg

    ringpop 是什么

    个人理解一句话分布式存储和路由。
    Uber 业务不断扩展,扩展派遣服务
    每 4 秒更新司机的位置信息
    写操作可以达到 1,000,000次/秒
    乘客查找身边的车辆
    检索操作:10,000次/秒
    这么大数据访问量将会面临以下挑战

    • 单机无法提供服务
    • 有中心的机构存在单点失败
    • 通过今天介绍 ringpop 来实现无中心的架构


      uber-taxi-for-web.jpg

    在 ringpop 框架中服务器是如何连接的呢

    首先服务会读取初始列表,此表列出一系列服务的地址,然后服务 A 就会根据地址连接到服务器 B

    幻灯片1.JPG
    幻灯片2.JPG

    新服务器是如何加入的呢

    新加入的服务器 C 会读取初始列表,连接到服务器 A,因为服务器 A 同时已连接服务器 B,B 就可以通过 A 认识到 C。

    幻灯片3.JPG

    服务器间的消息传递

    通过随机Ping相互传递消息,那么因为是随机,我们又是如何保证消息同步的呢
    ping的时候会检查服务消息的 CheckSum 如何服务间的 CheckSum 相等就说明消息一致,如果不等就需要进行消息同步。


    幻灯片4.JPG

    如何发现失败节点

    服务器间是通过 ping 检查是否连接正常,如何 C 发现无法连接到 A,这样暂时不能判断 A 服务挂掉了,有可能是 C 问题,那么为了确定 A 是否真正挂掉了,C 会询问小伙伴 B 问是否可以连接到 A 如果 B 也无法连接到 A,那就说明 A 挂掉了。


    幻灯片5.JPG 幻灯片6.JPG

    但有时候因为网络情况不好,时断时续这种时候 C 就会根据情况先将 A 归结为嫌疑人,最后再判断 A 是否挂掉。


    suspent.png 幻灯片7.JPG

    相关文章

      网友评论

        本文标题:Uber 架构(2)ringpop

        本文链接:https://www.haomeiwen.com/subject/pxhtvqtx.html