Java Spring云流发送到Kafka错误控制处理
如何捕捉写入卡夫卡主题的错误Java Spring云流发送到Kafka错误控制处理,java,apache-kafka,spring-cloud-stream,Java,Apache Kafka,Spring Cloud Stream,如何捕捉写入卡夫卡主题的错误 import org.springframework.cloud.stream.annotation.EnableBinding; import org.springframework.cloud.stream.annotation.StreamListener; import org.springframework.cloud.stream.messaging.Processor; import org.springframework.messaging.Mess
import org.springframework.cloud.stream.annotation.EnableBinding;
import org.springframework.cloud.stream.annotation.StreamListener;
import org.springframework.cloud.stream.messaging.Processor;
import org.springframework.messaging.Message;
import org.springframework.messaging.handler.annotation.SendTo;
import org.springframework.stereotype.Component;
import javax.xml.bind.JAXBException;
@Component
@EnableBinding(Processor.class)
public class Parser {
@StreamListener(Processor.INPUT)
@SendTo(Processor.OUTPUT)
public String process(Message<?> input) {
// do smth
// how to catch an error if sending message to 'output' topic fails
}
}
接下来呢?有什么例子吗?扩展一些绑定impl,添加一些AOP魔术?我认为您需要的是注册一个
KafkaProducerListener
,它处理您案例中的错误场景,并在应用程序中作为bean提供
欲了解更多关于卡夫卡的信息,请访问
另外,请注意,通常故障消息将在通道名为
error
的error通道上可用。所有错误消息都会在您拥有配置错误通道的目的地
名称后发布:spring.cloud.stream.bindings.error.destination
我认为您需要注册一个KafkaProducerListener
,它在您的案例中处理错误场景,并在您的案例中作为bean提供应用程序
欲了解更多关于卡夫卡的信息,请访问
另外,请注意,通常故障消息将在通道名为error
的error通道上可用。一旦您拥有配置错误通道的目的地
名称:spring.cloud.stream.bindings.error.destination
的权限,所有错误消息都将发布。感谢您的输入。我真的希望我的目标可以通过SpringCloudStream实现。你找到使用SpringCloudStream的解决方案了吗?关于错误处理的文档很少,令人惊讶的是,我已经在配置中设置了目标错误通道,但没有向其发布错误。您好,这里正在解决这个问题:谢谢您的输入。我真的希望我的目标可以通过SpringCloudStream实现。你找到使用SpringCloudStream的解决方案了吗?关于错误处理的文档非常少。令人惊讶的是,我在配置中设置了目标错误通道,但没有向其发布错误。您好,这里正在解决这一问题:
spring.cloud.stream.kafka.bindings.output.producer.sync=true