Apache Kafka:如何检查事件是否已完全处理?

时间:2018-08-15 13:29:09

标签: events apache-kafka

当事件/消息代理(例如Apache Kafka)将两个系统分离时,我面临一个问题。该问题与后端中的前端触发操作有关:

如果发布者既不知道“身份”也不知道消费后端的数量,那么生产者(前端服务)如何知道已由所有后端服务(作为消费者)正确地处理了已发布的事件? / p>

准确地说:用户可以使用前端UI更改例如其电子邮件地址。关联的服务将该“更改请求”事件发布到Kafka中的适当主题。然后“锁定” UI表单,以防止后续的更改请求,直到每个使用者都已完全处理更改事件为止。但目前尚不清楚如何检测这种状态。

2 个答案:

答案 0 :(得分:0)

按照卡夫卡的说法,生产者和消费者都不被视为后端-他们都是连接到经纪人的客户端,经纪人通常被认为是后端。

生产者将凭借acks设置知道它已经成功产生了一条消息。使用者将读取一条消息,然后在以后的某个点,其偏移量将更新为与它读取的最后一条消息相对应的一点。但是,生产者和消费者之间通常没有互动,而且他们通常完全不知道彼此。

答案 1 :(得分:0)

您可以使用另一个主题来发布已处理的作业。因此,一旦完成,您的前端将发布到一个主题,而您的后端将发布到另一个主题。