我想知道数百万用户的实时聊天架构,例如whatsapp。
我实施了聊天,但我需要使用更多服务器来处理更多客户
我读了另一个问题,但我仍然怀疑。 告诉我,如果我说的是正确的:
客户端连接到负载均衡器,该负载均衡器决定提供与其中一个whatsapp服务器的连接。 示例ClientA连接到Server1, ClientB连接到Server2,
- 如果ClientA想要与ClientB通信,请向Server1发送消息,现在,您如何知道哪个服务器是ClientB?维持数百万用户的可扩展性)
如何实施聊天以处理数百万用户?
答案 0 :(得分:1)
密钥是数据库(或任何其他持久性系统),其中存储来自客户端的所有输入。通常在这些比例中,key-value NoSql Database是合适的,例如Apache Cassandra,Amazon Dynamo或Google Datastore。 这些数据库最适合快速插入和仅通过PK获取。
所有服务器都需要无状态,因此客户端A连接到服务器A并发送文本消息和目标客户端ID。这将存储在DB中。然后,客户端B连接到服务器B,服务器B进入数据库并检索文本。