推或拉:用于近实时自动化服务器?

4
我们目前正在开发一个服务器,客户端请求对特定数据元素的更改感兴趣,当数据发生变化时,服务器将数据推送回客户端。在工作中有激烈的辩论,关于客户端是否应该轮询这些数据,这是更好的方法还是不是。
从性能、可伸缩性和网络负载等方面考虑,在近实时环境下数据传输的理想方法是什么?
更新:这里有一个链接(Link),可以提供一些关于UI更新的思路。
3个回答

3

可能没有适用于每种情况的理想方法,但“推送”通常更好并且更常用。它允许优化服务器缓存和数据传输,从而提高性能和可扩展性,并通过避免客户端请求和空响应来减少网络流量。对于服务器以自己的节奏运行并在准备好数据时向客户端提供数据是重要的优势。

行业标准 - 如OPC、GID - 支持两种方式。服务器将更新推送到订阅的客户端,但客户端可以拉取一些很少使用的数据而不必担心订阅问题。


1
只要客户端发起连接(以解决防火墙和NAT问题),无论哪种方式都可以。
如果有多种不同类型的数据需要发送,您可能希望让客户端指定他想要的类型,但这仅需要在每次连接时进行一次。然后,服务器可以继续在有更新时发送更新。
服务器在没有客户端不断请求更新的情况下发送更新将减少网络流量。

0

客户端有什么?许多防火墙允许出站请求,但会阻止入站请求。换句话说,如果你要跨越互联网,除非你发送电子邮件,否则拉取可能是你唯一的选择。


我们有自己的客户端软件,目前还没有在互联网上运营。 - Darren

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接