基于Angular Map的应用程序的后端技术和架构

时间:2019-03-03 11:11:06

标签: angular web server backend ngrx

我和我的团队正在使用Angular 7开发一个Web应用程序,该应用程序处理由图和类似数据组成的非常动态的数据。该应用程序使用Cesiumjs和(某种)表在地图上实时显示数据,从而允许用户对实体执行不同的操作。

当前,该应用程序每500ish毫秒通过一个针对每种类型的不同HTTP请求,以Java编写的单个服务器轮询多种实体类型,并接收应用程序的整个状态(地块,轨迹的最新状态)。 。)作为json。然后,应用程序将使用Ngrx Store通过应用程序分发它。

还有一个nodejs服务,可处理用户操作和与身份验证相关的问题。

Java服务基于一些遗留代码,既复杂又庞大,并且充满了bug,因此团队决定我们要完全重构应用程序的服务器端。当前的工作是:

  • 用作外部Pub-Sub网络的侦听器,该网络发布与应用程序相关的数据。
  • 融合数据并将其以适合客户端的方式存储在容器类中
  • 用作客户端查询的HTTP服务器。

我的问题如下:

  1. 根据服务器端技术的最新说法,怎样为我刚才描述的实时应用设计和实现服务器端的好方法?一个约束是,由于外部的Pub-sub网络,至少有一部分必须使用Java。
  2. 在与Ngrx存储一起使用的Angular应用程序中接收和处理数据的最佳方法是什么?我们应该在每个HTTP请求中检索整个状态并在每个周期“替换”整个数据状态,还是应该移到仅检索相关的更新并在客户端中以不同的方式进行处理?有没有第三种更好的方法来解决这个问题?

非常感谢您!

1 个答案:

答案 0 :(得分:0)

看看nest.js。它是一个具有基本Express实例的node.js框架,并提供了一个非常清晰的结构,该结构与Angular应用程序非常相似,还提供了出色的测试工具,...支持不同的消息传递协议(rabbitmq,{{3} },natsmqtt,...)。 (为什么要有Java要求?Pub / Sub应该独立于语言?!)

您是否考虑过使用redis来处理数据更新?我认为很难在这里提出一般性建议,但是仅发送更新似乎是个好主意。这样,您可以利用记忆化的选择器,避免不必要的计算和渲染。