我正在做一个微服务项目,在这个项目中,有一个微服务A正在做一个流程的各个步骤,在每一步完成的时候,微服务向Kafka主题发送消息。然后另一个微服务B使用来自Kafka主题的消息,并发送电子邮件通知步骤成功完成。我需要Exactly once语义。我使用的是KafkaTemplate。发送微服务A和@KafkaListener以读取微服务B中的消息。我的问题是KafkaTemplate生产者和@KafkaListener消费者是否是幂等的,如果不是,我如何使它们幂等。
此致,
我正在使用以下代码创建自动装配KafkaTemplate:-@自动装配公共事件生成器(新主题主题,KafkaTemplate〈字符串,事件〉kafkaTemplate){this. kafkaTemplate = kafkaTemplate;}
1条答案
按热度按时间nue99wik1#
Kafka的“恰好一次"语义适用于同一应用程序中的
consume->process->produce
操作--即使这样,也只有整个cpp是“恰好一次”;consume->process
部分至少为一次;消费总是至少一次(或最多一次),包括在您的场景中(对于B)。