在这篇文章之后:在什么情况下AJAX长/短轮询比HTML5 WebSockets更受欢迎?
我考虑在我的应用程序中使用WebSockets,我可以将其描述为类似于实时股票价格列表的东西。我读到我可以通过这种方式大大降低我的前端服务器的费用。所以我只是在"思考"它。
目前: 每个客户端每隔1秒调用我的应用程序以获取数据的JSON。这些数据对所有用户都是一样的。因此,每秒钟,我有一个前端Varnish调用一个新的资源,例如,它将请求传递给后端服务器(tomcat),生成一个新的JSON,然后将其传递给Varnish, TTL为1秒。在1秒内,每个请求数据的客户端都将从Varnish获取数据。
这允许后端服务器相对较少的请求,因为清漆占用了大部分请求。
我的问题:如果现在我使用WebSockets (WS)(我可能会从Tomcat切换到Nodejs来处理这些请求),我的客户端每秒都会请求新的数据。
- 我如何能够为"第一个"客户端生成数据,以及在下一秒内为所有其他客户端提供服务?
- 我怎样才能对清漆说这个数据的TTL是15 ?
提前感谢您的讲解
清漆不是websockets效率的重要组成部分。varnish唯一要做的就是将连接管道连接到后端(例如node.js)。因此,没有任何东西将缓存在清漆为web套接字。然而,当涉及到负载平衡时,清漆在图片中仍然是有用的。
每个客户端/访问者在进入页面/站点时会启动一个websocket连接。然后,每当你有新的信息(股票价格更新了?),你就把这些数据推送到每一个打开的连接上。所以刷新的时间间隔完全取决于node.js应用推送信息的时间。
这意味着您不必比实际可用的新信息更频繁地推送信息,也可能意味着您可以在不使服务器过载的情况下提供准确的亚秒级信息。