1

实际上,在我们的架构中,我们使用Hazelcast IMDG,以便在多个服务器节点之间共享有关用户操作的信息。

我们的地图结构如下:[key:String|value: CustomObject].

现在,我们想要扩展我们的产品功能,并且我们想要开发一个实时仪表板,通过执行以下操作来执行实时数据流:

  1. 复杂聚合
  2. 连续查询
  3. 等等

在流程结束时,我们希望将结果“发送”到Vert.x Eventbus,然后发送到套接字层 ( SockJS ),以便在仪表板中显示数据。

我们需要建立一个可扩展且快速的系统,以处理大量数据,例如每秒数千个事件。

第一张图片代表我们当前(旧)的架构,第二张图片代表我们的“目标”架构。

旧建筑

目标架构



您如何看待目标架构?

Hazelcast Jet的角色是否正确或是否有其他方式来执行这些操作(例如仅使用Hazelcast IMDG)?


提前致谢。

4

1 回答 1

3

看起来很适合 Hazelcast Jet。您可能会在将Sources.mapJournal()条目添加到 IMap 时使用它们来处理它们。您可以轻松聚合到滑动窗口中。编写一个 Vert.x 事件总线接收器应该很简单SinkBuilder。数千个事件/秒是一个很低的数字,这取决于您对每个事件所做的工作量。

于 2019-02-13T22:23:40.313 回答