互联网科技程序员微服务架构和实践

Uber 架构(2)ringpop

2019-03-21  本文已影响34人  zidea
ringpop.jpg

ringpop 是什么

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

在 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
上一篇下一篇

猜你喜欢

热点阅读