Apache Pulsar Consumer.acknowledgeAsync() 失败应该如何处理?

How should Apache Pulsar Consumer.acknowledgeAsync() failure be handled?

我正在使用 Consumer.acknowledgeAsync() 在我的 Java 服务中确认消息,想知道如果确认失败会发生什么?我是否应该重试该操作几次并在重试次数耗尽时丢弃我的消费者?

我正在计算正在处理的消息数量以进行流量控制以限制内存使用。

通常,如果消息没有被成功确认,在ackTimeout之后,消息会再次从broker重新投递给consumer。 所以这里,大部分情况下,是不需要重试的。

也许像这样的一些处理就足够了:

consumer.acknowledgeAsync(msgId)
    .thenAccept(consumer -> successHandlerMethod())
    .exceptionally(exception -> failHandlerMethod());