有没有办法使用 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"
如果您使用强制选项,请注意任何连接的发布者可能会立即重新创建该主题。