当在微服务之间使用Kafka时,我如何设计一种机制来知道一个作业是否已经完成?

ars1skjm  于 2022-11-28  发布在  Apache
关注(0)|答案(1)|浏览(116)

我正在使用一个工作流,该工作流包含多个组件,这些组件需要使用来自Kafka主题的记录并生成到另一个主题。看起来,组件A生成记录到主题A。然后组件B使用来自主题A的记录,进行一些处理,并生成记录到主题B。然后组件C、D...
我的问题是,如何才能知道ComponentA(或任何组件)上的作业是否已通过ComponentA到ComponentD完成?
目前,我正在监控每个主题的延迟,并选择在使用Kafka主题的记录时手动向Kafka代理确认,这样我就可以准确地知道记录是否已被处理。但这给我带来了很多麻烦,如果我想并行运行两个作业,这会给我带来更多麻烦。对于这个问题,有没有更好或替代的解决方案?

bxgwgixi

bxgwgixi1#

你可以看看 Saga ,或其他编舞模式。
您可以使用Airflow等工作流程工具。
在高层次上,你需要一个中央数据库来跟踪在任何时候采取了哪些步骤。存储哪个组件正在处理它所看到的那些事件。

相关问题