快速且可扩展的实时应用程序(Hazelcast Jet 是一种好方法吗?)
Fast and Scalable Real-Time Application (Is Hazelcast Jet a good way?)
实际上,在我们的架构中,我们使用 Hazelcast IMDG,以便在多个服务器节点之间共享有关用户操作的信息。
我们的地图具有以下结构:[key:String|value: CustomObject]
。
现在,我们想要扩展我们的产品功能,我们想要开发一个实时仪表板来执行实时数据流:
- 复杂聚合
- 连续查询
- 等等
在流程结束时,我们希望将结果“发送”到 Vert.x Eventbus,然后发送到套接字层(SockJS ),以便在仪表板中显示数据。
我们需要建立一个可扩展且快速的系统,以处理大量数据,例如每秒数千个事件。
第一张图片代表我们当前的(旧)架构,第二张图片代表我们的“目标”架构。
Old Architecture
Target Architecture
您如何看待 target 架构?
Hazelcast Jet 的作用是否正确,或者是否有其他方法来执行这些操作(例如仅使用 Hazelcast IMDG)?
提前致谢。
看起来很适合 Hazelcast Jet。您可能会使用 Sources.mapJournal()
来处理添加到 IMap 中的条目。您可以轻松聚合成滑动windows。使用 SinkBuilder
编写 Vert.x 事件总线接收器应该很简单。几千 events/s 是一个小数字,这取决于你为每个事件做多少工作。
实际上,在我们的架构中,我们使用 Hazelcast IMDG,以便在多个服务器节点之间共享有关用户操作的信息。
我们的地图具有以下结构:[key:String|value: CustomObject]
。
现在,我们想要扩展我们的产品功能,我们想要开发一个实时仪表板来执行实时数据流:
- 复杂聚合
- 连续查询
- 等等
在流程结束时,我们希望将结果“发送”到 Vert.x Eventbus,然后发送到套接字层(SockJS ),以便在仪表板中显示数据。
我们需要建立一个可扩展且快速的系统,以处理大量数据,例如每秒数千个事件。
第一张图片代表我们当前的(旧)架构,第二张图片代表我们的“目标”架构。
Old Architecture
Target Architecture
您如何看待 target 架构?
Hazelcast Jet 的作用是否正确,或者是否有其他方法来执行这些操作(例如仅使用 Hazelcast IMDG)?
提前致谢。
看起来很适合 Hazelcast Jet。您可能会使用 Sources.mapJournal()
来处理添加到 IMap 中的条目。您可以轻松聚合成滑动windows。使用 SinkBuilder
编写 Vert.x 事件总线接收器应该很简单。几千 events/s 是一个小数字,这取决于你为每个事件做多少工作。