我正在使用Kafka 2,并且正在通过以下链接。
https://cwiki.apache.org/confluence/display/KAFKA/KIP-98+-+Exactly+Once+Delivery+and+Transactional+Messaging
下面是我为交易生产者提供的示例代码。
我的代码,
3<4 & 5>4 & 12>10
问题:-
- 我们是否需要在commitTransaction之后调用endTransaction?
- 我们需要调用sendOffsetsToTransaction吗?如果我不包括这个会发生什么?
- 当我们将相同的代码部署到具有相同transactionId的多台服务器时,它如何工作?我们是否需要为每个实例设置一个单独的transactionId?假设在beginTransaction()之后和发送少量记录之后,machine1崩溃了吗?具有相同transactionId的machine2如何恢复。
- Machine1正在使用transactionId“ test”,并且在beginTransaction()之后以及生成少量记录后崩溃。当出现同一实例时,它如何恢复同一事务?实际上,我们将再次从init开始并开始事务。
- 它对于不涉及交易和现在不参与交易的同一主题如何起作用?我正在使用transaction_committed启动新的consumerGroup,它会读取在事务处理之前提交的消息吗?拥有transaction_uncommitted的使用者会看到被事务中止的消息吗?
谢谢