首页 文章

Google Chat服务器如何向数亿客户端发送通知?

提问于
浏览
2

考虑一个Web应用程序,例如Google Chat,其中服务器同时为数亿个客户端提供服务 . 在这样的应用程序中,服务器必须近乎实时地向客户端推送通知(在聊天示例中 - 传入消息,在线通知等) .

他们是如何实现的?很大一部分客户是基于浏览器的 . 我认为即使是Google的服务器,民意调查也会超负荷 . 那么,他们使用像Comet这样的东西吗?如果是这样 - 他们是否需要为每个65536个客户端分配一个服务器(每台机器的最大TCP连接数)?我知道有一种方法可以实现这个限制,但是我没有实施.2793003_已实施 .

2 回答

  • 0

    我不是告诉我们的 . 但是,今天你可以处理http流,websockets或长轮询来构建这样的应用程序 . 举个例子Atmosphere framework

    是一个构建“实时”,高效和可扩展的Web应用程序的工具 .

  • 1

    单个应用程序/硬件/实例不处理聊天 . 他们肯定使用许多具有负载 balancer 的实例,允许水平扩展聊天系统 . 它可能专用于区域或仅仅是单个集群系统(我相信它专注于区域内但仍聚集在区域内) . 同样,您可以拥有与硬件和网络一样多的连接但不能处理64k . 因为64k(实际上少于那个)是关于绑定套接字(服务器套接字,而不是客户端套接字) .

    对于谷歌和基于支持的浏览器,他们肯定使用混合技术来交流选择最强大的基于浏览器支持 . 这可以是长轮询,套接字甚至最老的:简单的ajax .

    例如,Facebook聊天基于erlang . 使用erlang有很多例子,有超过百万个连接 .

相关问题