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());
我正在使用 Consumer.acknowledgeAsync() 在我的 Java 服务中确认消息,想知道如果确认失败会发生什么?我是否应该重试该操作几次并在重试次数耗尽时丢弃我的消费者?
我正在计算正在处理的消息数量以进行流量控制以限制内存使用。
通常,如果消息没有被成功确认,在ackTimeout之后,消息会再次从broker重新投递给consumer。 所以这里,大部分情况下,是不需要重试的。
也许像这样的一些处理就足够了:
consumer.acknowledgeAsync(msgId)
.thenAccept(consumer -> successHandlerMethod())
.exceptionally(exception -> failHandlerMethod());