[Uber] Websocket & Disco

  1. 我之前对websocket的应用场景的理解是 如果server端想主动或者频繁地向client push message就用websocket, which is not the case for reporting location update in Uber。所以每4秒更新一次位置信息一定要用websocket吗?还是简单的request response也可以。
  2. 如果用了websocket,是不是一般就通过它沟通了,不会存在同时有websocket还有另外的http request (比如rest) from client to server?那这样的话,websocket就承担了一个gateway的角色对吗?
  3. 还是没太懂Uber为啥用Disco,每次更新位置信息不能直接就给那个相应的服务器吗?为啥还需要先给一个再让它转发。

感恩的心,
dawnleave

  1. Websocket 除了频繁的交流,服务器向客户端发送信息之外,还有一个作用是减少延迟,因为避免了 Handshake 的时间。这里频繁交流和降低延迟的需求都有。
  2. 可以都通过 Websocket,也可以在 Microservice Architecture 当中使用一些 Rest API 作补充。
  3. 主要目的是为了使服务更加稳定,避免 Single Point of Failure。有一台或多台机器来 Forward Traffic 不如 DISCO 设计来得那么容灾性好。