将 [hazelcast-jet] 添加到现有应用程序

Adding [hazelcast-jet] to existing Application

我有一个现有的应用程序,它使用 Hazelcast 来跟踪集群成员资格和分布式任务执行。我认为 Jet 可用于在现有应用程序之上添加分析,并且我正在尝试找出如何最好地将 Jet 分层到我们已有的之上。

所以我的第一个问题是,运行 应该如何在我们现有的 Hazelcast 配置之上进行 Jet?我是否必须单独 运行 Jet,或者用 Jet 替换我们现有的 Hazelcast 配置(因为 Jet 确实暴露了 HazelcastInstance。)

我的第二个问题是,我看到很多使用 IMap 和 IList 的示例,但我没有看到任何使用主题作为源的内容(我也没有将其视为源构建器的选项)。我最初使用 Jet 的想法是从我们现有的代码向主题发出事件(io perf 数据、http 请求数据),然后让 Jet 处理该主题,从该数据生成分析,然后将其推送到 IMap。这是错误的方法吗?我应该使用其他结构将这些事件推送到 Jet 中吗?我看到我可以在可以做到这一点的地方制作自己的自定义源,但我觉得如果我追求这个,我一定走错了路,因为图书馆还没有为此特定目的提供。

您可以将当前的 Hazelcast IMDG 集群升级到 Jet 集群,并且 运行 您的遗留应用程序与 Jet 作业一起升级。此设置更易于部署和操作。为 Jet 启动一个额外的集群也非常好。它的优点是隔离(集群生命周期、故障等)。请注意,您不能将 IMDG 3.x 与 Jet 4.x 集群结合使用。

使用IMap with Journal连接两个作业或将数据引入集群。这是适用于 OOTB 的最简单的容错选项。 Jet 的数据源必须是可重放的——如果作业失败,它会返回到最后一个状态快照,分别倒带数据源偏移量。

可以使用主题(通过 Source Builder),但它不是容错的(一些消息可能会丢失)。 Jet 通过定期对作业进行快照来实现容错。在发生故障的情况下,将恢复最新的快照并重放快照之后的数据。与日志不同,主题消费者无法使用偏移重播数据。