我正在使用Camel的Kafka Component在Spring-boot应用程序中向Kafka产生事件。如Camel文档中所述,它是通过标准URI格式配置的,它是一个 Producer 。我已将其设置为“幂等”生产者,以确保“准确地一次交货”并具有以下属性:
enable-idempotence: true
max-in-flight-request: 1
request-required-acks: all
retries: 100
我还想使用KafkaProducer的 Transactional 功能。当我在Camel Kafka URI上定义其他属性时:
additionalProperties.transactional.id=my-unique-transactional-id
我收到以下异常:
java.lang.IllegalStateException: Cannot perform a 'send' before completing a call to initTransactions when transactions are enabled.
使用标准的KafkaProducer Java API,应调用initTransactions()并开始交易。
如何使用camel-kafka组件实现这一目标?