首页 > 解决方案 > 如何避免在 Apache Pulsar 中自动删除非活动主题

问题描述

我有一个应用程序在特定主题下向 Pulsar 生成消息,并在完成后关闭应用程序;同时,不存在阅读该主题的消费者。

过了一段时间,当我创建一个消费者,想把写入的数据读出来的时候,我发现我写的主题被Pulsar删除了,所有的数据都丢失了。

如何禁用 Pulsar 中非活动主题的自动删除?

标签: message-queueapache-pulsar

解决方案


通常,有两种方法可以实现这一点。

  • 首先,保留策略将数据保留至少 X 小时(直到 Y GB),您可以pulsar-admin在命名空间级别将其设置为无限。
  pulsar-admin namespaces set-retention my-tenant/my-ns \
  --size 1T \
  --time -1
  • 其次,手动设置也可以禁用不活动主题brokerDeleteInactiveTopicsEnabled=falseconf/broker.conf删除。

建议同时设置以上两个设置以进行正确控制。


推荐阅读