Scale step of System Design of Uber

哪些问题没有解决 哪些问题需要优化?出现问题怎么办?

what if redis server is down?
如果某一台Redis挂了怎么办?我们肯定要避免单点失效
避免单点失效 我们就要DB sharding
follow up: 那么按照什么来sharding?
按照城市sharding:如何定义城市的概念?如何根据用户储存的位置信息来判断用户属于哪个城市?
Answer:将问题转化成求一个点是否在多边形内(即Geo Fence问题)

但是如果某一台或者几台Redis挂了 怎么样尽最大努力减少损失?
方法1:Replica-(Master-slave模式)
方法2:Replica by yourself: 底层储存的接口将每一份数据写三份,独取得时候 从任意一份replica读取数据,三分replica极有可能存在三个不同的机器上面 同时挂掉的概率很小。
方法3:让更强大的NoSQL来处理:NoSQL能帮你更好的处理Replica和机器挂掉之后的恢复问题

如何检查rider是否在机场?
同样用Geo Fence来解决,但是类似机场这样的区域全世界邮寄完了 直接查询太慢 所以我们可以衔分两级查询 先找到城市 然后在城市里面查询airport fence

posted @ 2020-10-23 19:05  EvanMeetTheWorld  阅读(18)  评论(0)    收藏  举报