[Whatsapp] Sharding message server and websocket server

  1. 在sharding一个messaging或者websocke service的时候,具体是怎么实现的,是要在所有server前面放一个或者几个load balancer吗(或者叫有hashing功能的reversed proxy)?
    对于sharded的cache或者数据库,也是通过一个reversed proxy访问吗?

  2. 对于whatsapp或者Facebook messager这种全球的服务,是所有用户共用一套messaging service和websocket service吗?是不是要根据region sharding这些?

谢谢老师!

  1. Sharding 指的是数据如何分散到多台机器,并不特指哪一种分布式系统的架构。可以用专门的机器来分配任务 (Proxy),也可以让机器之间互相 forward traffic。
    Stateful Service,数据库和缓存都可以从这两种方式中选择一种。
  2. 从整个服务来看,所有人是共用一套系统的。同时,这套系统在每个 Region (Data center) 都会存在一些机器。比如 host Messaging Service 的 Data Center 可以各管一部分用户,按照用户的注册地或者主要活动区域来 - 每个 Data Center 再做 Sharding