Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Events ApacheKafka:如何检查事件是否已完全处理?_Events_Apache Kafka - Fatal编程技术网

Events ApacheKafka:如何检查事件是否已完全处理?

Events ApacheKafka:如何检查事件是否已完全处理?,events,apache-kafka,Events,Apache Kafka,当使用事件/消息代理(如ApacheKafka)将两个系统解耦时,我面临一个问题。该问题与后端中的前端触发操作有关: 如果发布者既不知道“身份”也不知道消费后端的数量,那么生产商(前端服务)如何知道已发布事件已由所有后端服务(作为消费者)正确处理 确切地说:用户可以使用前端用户界面更改他们的电子邮件地址。关联服务将该“更改请求”事件发布到Kafka中的适当主题。然后,UI表单被“锁定”,以防止后续的更改请求,直到每个使用者都完全处理了更改事件。但不清楚如何检测这种状态。用卡夫卡的术语来说,生产者

当使用事件/消息代理(如ApacheKafka)将两个系统解耦时,我面临一个问题。该问题与后端中的前端触发操作有关:

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


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

用卡夫卡的术语来说,生产者和消费者都不被视为后端-他们都是连接到代理的客户端,通常被认为是后端


通过
acks
设置,生产者将知道其已成功生成消息。消费者将读取一条消息,然后在稍后的时间点,其偏移量将更新到与其上次读取的消息相对应的点。但是,生产者和消费者之间通常没有交互,他们通常完全不知道彼此。

您可以使用其他主题发布处理过的作业。因此,前端发布到一个主题,后端发布到另一个主题

那么,撇开卡夫卡的细节不谈:有什么方法可以实现“伪同步”体系结构,从而使事件的发射器知道事件已被所有适当的侦听器处理(使用)?选项1:Producer one维护一个消费者列表(消费者列表反过来使用某种发现来介绍自己)。每个使用者触发一个“完成”事件。在原始事件处理完毕后,生产者订阅相应的主题。选项2:事件由所有使用者按顺序处理,最终使用者发出“全部完成”事件。看起来像ESB/BPM工具。