有没有办法在 Pulsar 中确认特定消息?

Posted

技术标签:

【中文标题】有没有办法在 Pulsar 中确认特定消息?【英文标题】:Is there a way to acknowledge specific message in Pulsar? 【发布时间】:2021-11-24 18:24:06 【问题描述】:

有没有办法代表特定订阅者确认主题中的特定消息?

我在 api 中找不到与此相关的任何内容,包括管理员和客户端 api。

【问题讨论】:

【参考方案1】:

是的,Consumer.acknowledge(msg) 方法正在确认消费了 1 条特定消息。

【讨论】:

【参考方案2】:

如果我正确理解了这个问题,听起来您是在尝试以管理方式执行此操作,而不是通过使用 Pulsar 客户端的订阅者的典型消费者确认行为。例如,如果您的消费者无法处理该消息,并且您想将其从积压中删除,则可以跳过该消息。

pulsar-admin topics skip \
  --count 1 --subscription my-subscription \
  persistent://my-tenant/my-namespace/my-topic 

请记住,如果您使用保留,跳过消息会绕过保留消息的机制,因此除非消息已被确认并且由于错误而被卡住,否则跳过将因此安排消息删除。

【讨论】:

我的要求是找到特定的消息并确认它。所以我使用 Reader 查找消息并确认它。

以上是关于有没有办法在 Pulsar 中确认特定消息?的主要内容,如果未能解决你的问题,请参考以下文章

开源大数据:Apache Pulsar

确认Spring Cloud Stream中的消息

从 apache pulsar 主题中检索所有过去的消息

在 RabbitMQ 中手动确认消息

Firebase:我可以在 Firebase 云功能中“不确认”一条 PubSub 消息吗?

从 Java/Spring 中检索 RabbitMQ 队列中未确认消息的数量