【发布时间】: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