如何制作一个超高速的网络服务器来“检查更新”?

时间:2010-10-13 09:28:26

标签: web-services delphi

如果客户端应用程序要求网络服务器“检查更新”,那么这是创建快速响应的最佳方法。

例如,Skype需要大约1秒才能回答。如何实现同样的目标?

3 个答案:

答案 0 :(得分:3)

我假设您正在运行一个或多个Web服务器和一个或多个后端服务器(具有业务逻辑)。

我看到过一种可能的方法:在网络服务器中保留更改计数器,当后端状态发生变化时,让业务逻辑通知所有网络服务器反价值。

每个网络浏览器定期轮询网络服务器以获取计数器值,并将该值与之前的值进行比较。如果是old_value!= new_value,则Web浏览器会向网络服务器询问新内容。

这允许常规轮询超快(1ms)且便宜。只有当某些内容真的发生变化时,浏览器才会要求生成更多资源昂贵的内容。

另一个选择是使用一些异步HTTP魔术(cometd),但上面概述的方法更简单,更容易理解,更容易排除故障

答案 1 :(得分:3)

简单的方法是在服务器上只有一个平面文本或XML文件,其中包含最新版本的详细信息。客户端应用程序通过http GET获取它,比较版本,并做出相应的反应。 http服务器只返回一个小文件,这是http服务器的设计目的。您应该能够以这种方式每秒处理数百个请求。

答案 2 :(得分:1)

使用大型分布式系统,具体取决于您的用户数量。使您的Web服务器更接近客户端,避免更长的延迟。使用群集和负载平衡软件来提高性能。使用反向代理缓存数据。 但是,“检查更新”是否那么快是非常重要的?您还可以签入后台主题。我会提高其他任务的表现。