Java聊天套件milion客户端

时间:2016-07-04 12:07:46

标签: java database architecture

我想知道数百万用户的实时聊天架构,例如whatsapp。

我实施了聊天,但我需要使用更多服务器来处理更多客户

我读了另一个问题,但我仍然怀疑。 告诉我,如果我说的是正确的:

客户端连接到负载均衡器,该负载均衡器决定提供与其中一个whatsapp服务器的连接。 示例ClientA连接到Server1,         ClientB连接到Server2,

- 如果ClientA想要与ClientB通信,请向Server1发送消息,现在,您如何知道哪个服务器是ClientB?维持数百万用户的可扩展性)

如何实施聊天以处理数百万用户?

1 个答案:

答案 0 :(得分:1)

密钥是数据库(或任何其他持久性系统),其中存储来自客户端的所有输入。通常在这些比例中,key-value NoSql Database是合适的,例如Apache CassandraAmazon DynamoGoogle Datastore。 这些数据库最适合快速插入和仅通过PK获取。

所有服务器都需要无状态,因此客户端A连接到服务器A并发送文本消息和目标客户端ID。这将存储在DB中。然后,客户端B连接到服务器B,服务器B进入数据库并检索文本。