【发布时间】:2020-02-20 02:34:30
【问题描述】:
我有要求在 KafkaStream 中接收记录,我根据逻辑将这条记录分为 n 条记录。这 n 条记录被推送到另一个流。这 n 条记录是并行处理的。但我需要知道 n 个作业的完成情况,以便我可以发回响应。你能告诉我我怎么能做到这一点。
【问题讨论】:
我有要求在 KafkaStream 中接收记录,我根据逻辑将这条记录分为 n 条记录。这 n 条记录被推送到另一个流。这 n 条记录是并行处理的。但我需要知道 n 个作业的完成情况,以便我可以发回响应。你能告诉我我怎么能做到这一点。
【问题讨论】:
我认为最简单的方法是设置一个消费者来订阅该流并进行处理。
【讨论】:
如果我理解正确,您想知道实际上 “N 条消息已处理”。 AFAIK,没有通用的解决方案,但这就是我要做的。
(注意:我的解决方案假设您有一个消费者在消费第二个流。)
要知道已经处理了 N 条记录,您必须知道 N 是什么。因此,当您将单个记录分成 N 条记录时,将 N 存储在记录本身中(例如,如果您的记录是 JSON 对象,请添加 "n": 5 键值对)。然后,在处理第二个流(包含 N 条记录的流)的消费者中,您消费的每条消息都执行以下操作:
【讨论】: