【问题标题】:Kafka based distributed scheduler基于Kafka的分布式调度器
【发布时间】:2021-05-31 03:05:27
【问题描述】:

我们有一个用例,我们每天在 Kafka 中收到数百万个事件。每个事件都是这样的:

{"id": 123, "state": "start/in-transit/stop", "ts":"01-02-2021 12:00:00"}

所以对于每个 id,我们可以有多个事件。

我们需要生成警报,以防在 xx 天之后在这些事件流中未收到任何特定 id 的状态。如果我们在 5 天后没有收到 in transit 事件,则 id 为 123 的示例。

一种方法是将所有内容存储在数据湖中,并在其上连续运行 Spark 作业。

我的问题是:我们能否在 xx 天后为这些 ID 中的每一个安排作业,并使用 Kafka 对其进行授权,使其成为分布式的。

这样做,我们不会连续轮询和检查是否违反警报条件,而是会在特定时间安排作业,我们可以查询警报条件。

【问题讨论】:

    标签: apache-spark apache-kafka quartz-scheduler apache-kafka-streams distributed


    【解决方案1】:

    您可以创建一个正在进行的事件的压缩主题,该主题存储所有开始/传输中的状态,停止是删除以从 KTable 中删除 ID。

    但是,您仍然需要每秒扫描一次表,以验证任何时间戳都没有超出其窗口

    【讨论】:

      猜你喜欢
      • 2019-09-01
      • 2011-10-24
      • 2019-11-29
      • 2011-10-26
      • 2020-04-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-14
      相关资源
      最近更新 更多