假设我有一个JavaScript前端(例如Angular.js),一个基于Java的后端(例如,Spring,在Tomcat上运行)和一个数据库管理系统(SAP) HANA In-Memory,在我的情况下)。例如,我的图表可以相对快速地改变。
我想知道什么是高效快速的架构。您是否经常向UI发送整个对象集合,或者您只是发送增量?
就我而言,UI上的数据一致性对于应用程序正常工作非常重要,但也具有低延迟,特别是在涉及数据合并时。
说到一致性,我经常倾向于从插件上的数据库中执行SELECT并再次读取整个对象集合,但我担心的是这不会扩展。
是否存在针对该问题甚至现有框架的通用方法?
编辑: 目前,大约300个对象具有几个整数属性和交叉引用,可以在毫秒时间内更改和重新排列,但将来可能会达到10000。我的挑战是前端和后端之间的通信,因此前端始终具有实时的一致数据集。
答案 0 :(得分:1)
客户端与服务器的距离有多近?距离一英里/公里还是数百/千里之外?客户端是在互联网上还是在高性能VPN上?你是靠近骨干还是几十跳?如果您信任普通互联网,通常不会在网络上持续获得1毫秒的延迟。
如果您在公司内部网络上并且客户端在物理上靠近服务器,例如,同一台计算机,同一本地网络,则可以通过WebSocket获得单位数ms延迟(我个人在内部获得3-4毫秒)数据中心位于一家大型投资银行。)
不要太早优化。这通常是一件坏事。 虽然使用任何高性能UI,但只需发送增量即可。
您可能需要考虑某种事件机制来减少轮询数据源。然后,您只会在实际更改时更新数据。