新增kafka commitSync api说明

This commit is contained in:
wuxiangkai
2023-12-23 14:41:16 +08:00
parent ebf8665806
commit 47f5222bbf

View File

@@ -454,6 +454,11 @@ kafka中的分区策略通过`partition.assignment.strategy`参数来进行配
> 在使用异步提交时如果在发生rebalance之前rebalance只能发生在poll过程中commitAsync提交失败由于commitAsync不会失败重试故而在分区重新分配后新分配到该分区的消费者实例将会重新消费之前未提交成功的消息因此产生了消息的重复消费 > 在使用异步提交时如果在发生rebalance之前rebalance只能发生在poll过程中commitAsync提交失败由于commitAsync不会失败重试故而在分区重新分配后新分配到该分区的消费者实例将会重新消费之前未提交成功的消息因此产生了消息的重复消费
> >
> 而同步提交时commitSync在提交失败后会无限次重试直到提交成功故而在发生rebalance时rebalance只能发生在poll的过程中在发生rebalance之前可以保证之前commitSync操作已经成功。 > 而同步提交时commitSync在提交失败后会无限次重试直到提交成功故而在发生rebalance时rebalance只能发生在poll的过程中在发生rebalance之前可以保证之前commitSync操作已经成功。
>
> #### kafka commitSync
> kafka commitSync方法调用可以指定一个超时时间在超过该超时事件后会抛出TimoutException。如果调用该api时没有指定超时时间会默认使用`default.api.timeout.ms`来作为超时时间,`default.api.timeout.ms`的默认值为1min。
>
> **对于kafka commitSync方法在超时前都会一直对提交进行重试直至提交成功或是发生不可恢复unrecoverable的异常。**
> #### kafka的手动提交重试机制 > #### kafka的手动提交重试机制
> 针对kafka的手动提交当使用`commitSync`进行同步提交时,如果提交失败,同步提交会无限次的进行重试,直到提交成功或是发生了不可恢复的异常。 > 针对kafka的手动提交当使用`commitSync`进行同步提交时,如果提交失败,同步提交会无限次的进行重试,直到提交成功或是发生了不可恢复的异常。