Web services 如何为“创建超高速Web服务器”;检查是否有更新;?

Web services 如何为“创建超高速Web服务器”;检查是否有更新;?,web-services,delphi,Web Services,Delphi,哪种方法是在客户端应用程序要求Web服务器“检查更新”时创建快速响应的最佳方法 以Skype为例,回答这个问题大约需要1秒。如何实现相同的功能?我假设您正在运行一个或多个web服务器和一个或多个后端服务器(使用业务逻辑) 我看到的一种可能的方法是:在webserver中保留一个更改计数器,当后端状态更改时,让业务逻辑用新的更改计数器值通知所有webserver 每个web浏览器定期轮询web服务器的计数器值,并将该值与以前的值进行比较。如果旧的_值!=新值时,web浏览器会向web服务器请求新内

哪种方法是在客户端应用程序要求Web服务器“检查更新”时创建快速响应的最佳方法


以Skype为例,回答这个问题大约需要1秒。如何实现相同的功能?

我假设您正在运行一个或多个web服务器和一个或多个后端服务器(使用业务逻辑)

我看到的一种可能的方法是:在webserver中保留一个更改计数器,当后端状态更改时,让业务逻辑用新的更改计数器值通知所有webserver

每个web浏览器定期轮询web服务器的计数器值,并将该值与以前的值进行比较。如果旧的_值!=新值时,web浏览器会向web服务器请求新内容

这使得常规轮询可以超快(1ms)且便宜。只有当某些东西真的发生了变化时,浏览器才会要求生成资源更为昂贵的内容


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

使用大型分布式系统,具体取决于用户数量。将web服务器靠近客户端,避免更长的延迟。使用群集和负载平衡软件提高性能。使用反向代理缓存数据。
但“检查更新”有这么快真的很重要吗?您还可以签入后台线程。我会提高其他任务的性能。

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

对于大多数现代Web服务器来说,在不到一秒钟的时间内做出响应应该是没有问题的。问题是什么?尽可能多地使用底层操作系统。例如,如果您使用的是Windows和IIS 7或更高版本,没有比让核心IIS缓存处理整个请求更好的方法来减少响应时间、增加吞吐量和卸载系统。创建一个包含数百个web服务器的服务器园区。:-)Google和Skype都使用了很多强大的硬件来获得很多性能。将服务器放在离客户端非常近的网络中。例如,在同一个大陆上。是的,检查更新只是一个例子,在后台线程中处理这种特殊情况肯定会更好。这是“检查更新”的一个非常好的技巧。谢谢。我就是这样做的。我只返回一个包含应用程序最新版本的纯文本文件。你甚至可以看到: