如何删除 Apache Pulsar 主题的所有消息?

如何删除 Apache Pulsar 主题的所有消息?

有没有办法使用 Pulsar 命令行工具删除某个主题的所有消息?它还没有任何订阅,据我所知,执行此操作的工具对订阅进行操作。我需要在启动使用该主题的服务之前清除旧垃圾。

答案1

@David Tinker,请尝试此删除主题命令: $ pulsar-admin persistent delete persistent://test-tenant/ns1/tp1 执行前,不应有任何活动订阅或生产者连接到该主题。如果主题已连接订阅和生产者,并且您不关心现有数据,则可以--force在末尾添加。删除此主题后,当生成数据时,生产者将重新连接并自动创建同名主题。

答案2

文档

列出主题:

pulsar-admin persistent list tenant/namespace

然后删除它们:

pulsar-admin topics delete "persistent://tenant/namespace/topic

或者:

pulsar-admin topics delete "persistent://tenant/namespace/topic" --force

您可以使用以下方式检查订阅者:

pulsar-admin persistent subscriptions "persistent://tenant/namespace/topic"

您可以使用(输出的发布者部分)检查发布者:

pulsar-admin topics stats "persistent://tenant/namespace/topic"

如果您使用强制选项,请注意任何连接的发布者可能会立即重新创建该主题。

相关内容