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



我有一个现有的应用程序,它使用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 与日记结合使用可连接两个作业或将数据引入群集。这是最简单的容错选项,适用于 OOTB。Jet 的数据源必须是可重播的 - 如果作业失败,它将分别返回到上一个状态快照,回退数据源偏移量。

可以使用 Topic(通过源生成器(,但它不会具有容错能力(某些消息可能会丢失(。Jet 通过定期快照作业来实现容错。如果发生故障,将恢复最新的快照,并重放快照之后的数据。与日志不同,主题使用者无法使用偏移量重播数据。

相关内容

最新更新