假设我有以下情况
producer sends the following instructions on to kafka :
1. "debit 100 from account A"
2. "send email to user A that his account is debited by 100"
and there is a consumer that does the following :
1. does the actual work of 'debit 100'
2. does the actual work of 'sending mail'
比如说,消费者示例崩溃了,我提出了另一个示例。现在,消费者告诉Kafka“重放”(具体化其数据视图)就现实世界而言,消费者不应该按照这些指示行事(这将导致不必要的借记和电子邮件),而只是阅读数据并做任何需要具体化其视图的事情。
问题是,消费者怎么知道自己之前对某条信息“采取了行动”,所以不应该再对其采取行动。它只需要在内部捕获消息状态信息?
1条答案
按热度按时间8zzbczxx1#
您可以做的一件事是让您的消费者手动提交偏移量。为此,您需要更改默认的使用者配置
enable.auto.commit
从true
至false
. 然后,在用户应用程序中,在成功处理消息之后,提交偏移量。