ringpop 是什么
个人理解一句话分布式存储和路由。
Uber 业务不断扩展,扩展派遣服务
每 4 秒更新司机的位置信息
写操作可以达到 1,000,000次/秒
乘客查找身边的车辆
检索操作:10,000次/秒
这么大数据访问量将会面临以下挑战
- 单机无法提供服务
- 有中心的机构存在单点失败
-
通过今天介绍 ringpop 来实现无中心的架构
uber-taxi-for-web.jpg
在 ringpop 框架中服务器是如何连接的呢
首先服务会读取初始列表,此表列出一系列服务的地址,然后服务 A 就会根据地址连接到服务器 B
幻灯片2.JPG
新服务器是如何加入的呢
新加入的服务器 C 会读取初始列表,连接到服务器 A,因为服务器 A 同时已连接服务器 B,B 就可以通过 A 认识到 C。
服务器间的消息传递
通过随机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
网友评论