一些卡夫卡制作人是交易型的,另一些则不是



我们为Spring Kafka使用StreamListeners,并使用基于JPA的发件箱发送消息。发件箱是从消费异步清空的,所以我们不希望在";从JPA表读取,产生消息给Kafka";。

但我们也有重试主题,所以如果消费失败,我们会将失败的消息移动到重试主题(最后是DLT(,这确实需要是事务性的。

据我所见,只有在全局的基础上(设置事务id前缀(才有可能打开/关闭生产者的事务,而不是在具体绑定上,即"output1"事务性和"output2"非事务性,但我可能错了?

我想你说的是spring cloud stream——我已经在你的问题中添加了这些标签。

为了支持这一点,您应该定义两个Kafka绑定器,一个是事务绑定器,另一个不是,然后指定每个输出使用哪个绑定器。

类似于当你想与不同的集群交谈时:

https://docs.spring.io/spring-cloud-stream/docs/3.2.2/reference/html/spring-cloud-stream.html#multiple-系统

最新更新