【问题标题】:Adding [hazelcast-jet] to existing Application将 [hazelcast-jet] 添加到现有应用程序
【发布时间】:2020-05-27 06:43:43
【问题描述】:

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

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

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

【问题讨论】:

    标签: hazelcast hazelcast-jet


    【解决方案1】:

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

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

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

    【讨论】:

    • 通过将其配置为事件日志,这是否意味着我无需担心 IMap 在向其推送更多数据时会无限增长?我最关心的也是我为什么要使用主题的原因是,我的性能数据具有有限的时间意义,我不希望它无限期地留在内存中。
    • IMap 只会为每个键保留最后一个值。因此,可以通过将输入数据分配给一组合理的键来控制内存收集。您可以将其与设置 TTL 或 eviction strategy 结合使用。
    • @PatTheGamer 随时加入 Hazelcast Gitter 以获得更具体的帮助:gitter.im/hazelcast/hazelcast-jet
    猜你喜欢
    • 2012-01-27
    • 1970-01-01
    • 1970-01-01
    • 2023-03-08
    • 1970-01-01
    • 2021-11-11
    • 2016-06-25
    • 2014-11-26
    • 2012-01-27
    相关资源
    最近更新 更多