【发布时间】:2019-11-25 18:21:22
【问题描述】:
我正在学习使用 kafka,我有两个服务一个生产者和一个消费者。
生产者产生需要处理的消息(对服务和数据库的查询)。这些消息由消费者接收,它负责处理它们并将结果保存在数据库中
制片人
@Autowired
private KafkaTemplate<String, String> kafkaTemplate;
...
kafkaTemplate.send(topic, message);
消费者
@KafkaListener(topics = "....")
public void listen(@Payload String message) {
....
}
我希望消费者正确处理所有消息。 在这种情况下,我不知道如何处理消费者方面的错误。例如,数据库可能被暂时禁用,无法处理某些消息。
遇到这些情况该怎么办?
我知道责任属于消费者。 我可以重试,但是如果数据库关闭,则连续重试几次似乎不是一个好主意。如果我继续消费消息,索引会前进,我会丢失我无法处理的事件。
【问题讨论】:
标签: spring error-handling apache-kafka