设计实时Web应用程序

问题描述 投票:-1回答:1

我们有一个实时应用程序,其中AppServer(用c / c ++编写)用于将网络事件详细信息(通常是几百到几千行,每秒大约40-50列)广播到使用XML /在网络上用gtk编写的客户GUI应用程序RPC,以及写入DB(在同一台机器或LAN上运行)。 95%的通信是从服务器到客户端。它没有问题,工作正常。

我们必须将应用程序移植到Web。在最初的尝试中,我们保持了C / C ++ app服务器的原样。现在我们通过xml / rpc将数据发送到java Web应用程序服务器。 Java服务器保持循环队列(最初保持小型的2000)并通过websockets将数据推送到客户端。在客户端,我们使用角度ui-grid来显示数据。

目前的问题是浏览器无法在此频率处理此数据量,并且在一段时间(几小时)后变得无响应。这是一个应该全天候运行的网络监控应用程序,虽然我们的用户很少,但我们对其机器的配置(主要是低端/中端)没有太多控制权。服务器(tomacat 8)运行在2 * 6核心,16 GB RAM上。

你能提出改善浏览器性能的建议吗?我们甚至准备从头开始实施新的解决方案。但我认为浏览器性能始终是瓶颈。

javascript java websocket real-time xml-rpc
1个回答
0
投票

如果推送的数据在其他地方持久存在,则应该实现工作程序以定期清理浏览器数据。

举个例子说你每分钟推送1000条记录,并且浏览器在一小​​时内崩溃,你可以每隔半小时实现一个工作者,它会清理浏览器DOM,以便将内存占用保持在最低水平。

要访问以前的数据,您应该实现API,用户可以在给定时间/数据周期内获取数据。

很难确定导致崩溃的原因,但IMO应该是一个沉重的DOM,浏览器在一段时间后无法处理。如果你能在崩溃时提供浏览器的详细报告,那就更好了。

© www.soinside.com 2019 - 2024. All rights reserved.