在部署支持 Web 消息传递(使用 Bayeux 协议)的应用程序时将面临一些挑战。任何使用长期连接的 Comet 风格应用程序都将面临这些挑战。在这些困难当中,有许多都涉及到 Comet 风格的通信对因特网基础结构的各个方面的同步情况带来严峻的考验。Web 消息传递服务通过使用通道框架可以超越“每个请求对应一个线程”这种模式,但是因特网基础结构的许多其他部分还难以做到这一点。
在伸缩性方面可能有些困难的一个区域是 Web 服务器。当 IBM® HTTP Server for WebSphere® Application Server 位于支持 Web 消息传递的应用程序前面时,由于请求要花更多时间来等待事件,因此,需要配置 IBM HTTP Server for WebSphere Application Server 以处理更多请求。IBM HTTP server for WebSphere Application Server 将正在等待的单个请求与单个线程联系起来,并且受到可供 Web 服务器使用的最大线程数的约束。在大多数 Web 消息传递安装中,需要增大位于支持 Web 消息传递的应用程序前面的 IBM HTTP Server for WebSphere Application Server 安装数目。
WebSphere Application Server 的代理服务器可以取代 IBM HTTP Server for WebSphere Application Server 位于支持 Web 消息传递的应用程序前面。WebSphere Application Server
的代理服务器不会对每个传入请求使用一个线程,并且应该能够比
IBM HTTP Server for WebSphere Application Server
处理更多的并发客户机。但是,用 WebSphere Application Server 的代理服务器来取代 IBM HTTP Server for WebSphere Application Server 可能就会产生问题。有关使
WebSphere Application Server 的代理服务器位于支持 Web 消息传递的应用程序前面的更多信息,请参阅
developerWorks 文章:了解有关代理的基础知识。可以在使用 Web 消息传递解决方案之前使用其他基于硬件的解决方案。需要记住的重要事项是,在集群环境中,需要具有会话亲缘关系才能使请求恢复到同一服务器中。
在与建立了 Bayeux 连接的服务器执行其他与时间相关的浏览器通信时也必须小心。Bayeux 协议使用第二个可用连接来预订、取消预订信息和将信息发布至服务器。其他需要进行连接的操作包括:Ajax XmlHttpRequest 操作,下载图像或 HTML 文件,上载文件。当在一台服务器上针对同一个浏览器实例执行多项操作时,Bayeux 客户机应用程序的运行速度可能会下降,并且在等待释放连接期间将产生奇怪的行为。