Message-Queuing

如何從 Apache Pulsar 主題中刪除所有消息?

  • April 21, 2021

有沒有辦法使用 Pulsar 命令行工具來刪除某個主題的所有消息?它還沒有任何訂閱,據我所知,執行此操作的工具在訂閱上執行。在啟動使用該主題的服務之前,我需要擺脫舊垃圾。

@David Tinker,請試試這個刪除主題命令: $ pulsar-admin persistent delete persistent://test-tenant/ns1/tp1 在執行之前,應該沒有任何活動的訂閱或生產者連接到它。如果主題已連接訂閱和生產者,並且您確實關心現有數據,則可以--force在最後添加。刪除該主題後,生產者在生產數據時會重新連接並自動創建同名主題。

請參閱文件

列出主題:

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"

如果您使用 force 選項,請注意任何已連接的發布者可能會立即重新創建主題。

引用自:https://serverfault.com/questions/951078