快速和可扩展的实时应用程序(Hazelcast Jet是一个好方法吗?)

时间:2019-02-13 18:15:40

标签: hazelcast vert.x sockjs hazelcast-imap hazelcast-jet

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

我们的地图具有以下结构:[key:String|value: CustomObject]

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

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

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

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

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

Old Architecture

Target Architecture



您如何看待 target 体系结构?

Hazelcast Jet 的角色是正确的还是有其他方法执行这些操作(例如,仅使用 Hazelcast IMDG )?


预先感谢。

1 个答案:

答案 0 :(得分:1)

看起来非常适合Hazelcast Jet。您可能会使用Sources.mapJournal()处理将条目添加到IMap中的条目。您可以轻松聚合到滑动窗口中。使用SinkBuilder可以轻松编写Vert.x事件总线接收器。千个事件/秒是一个较低的数字,这取决于您将为每个事件执行多少工作。