是否可以通过基于 Spring Kafka 的消费者实施断路器模式。我想知道在实现我的Spring kafka使用者时,如果基于某些外部系统无法处理数据并且引发网络错误,则可能会停止使用记录。但是,如果网络问题得到解决,消费者应该再次正常处理。
答案 0 :(得分:1)
如果要在下游服务或数据库关闭时停止使用消息,则可以参考此解决方案。
示例
在这种情况下,您可以在服务A上设置断路器。每当外部服务B关闭时,此电路就会断开。然后,在此断路器的状态转换后,调用您的侦听器/绑定(如果使用的是spring-cloud-stream)以停止/暂停使用方。因此,您的消息将一直停留在队列/主题上,直到断路器再次合上并且您不必使消息死信或将其放入错误队列/主题中。
您可以在下面的链接中找到详细的解决方案,该解决方案使用 Resilience4j 和 spring-cloud-stream 用于消费者。
答案 1 :(得分:0)
使用死信队列(DLQ)重试是处理消费者失败的良好模式,而断路器模式可以很好地处理生产者问题。
答案 2 :(得分:0)
给出:
然后:
这就是我的做法:-)如果您找到了更好的方法,请分享!