Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我正在使用 Consumer.acknowledgeAsync() 来确认我的 Java 服务中的消息,并且想知道如果确认失败会发生什么?我应该重试几次操作并在重试用尽时丢弃我的消费者吗?
我正在计算为流量控制处理的消息数量,以限制内存使用。
通常,如果消息未成功确认,则在 ackTimeout 之后,消息将再次从代理重新传递给消费者。所以在这里,大多数情况下,不需要重试。
也许这样的处理就足够了:
consumer.acknowledgeAsync(msgId) .thenAccept(consumer -> successHandlerMethod()) .exceptionally(exception -> failHandlerMethod());