如何避免在 Apache Pulsar 中自动删除非活动主题

yjs*_*hen 4 message-queue apache-pulsar

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

过了一会儿,当我创建一个consumer,想把写入的数据读出来的时候,发现我写的topic被Pulsar删除了,所有的数据都丢失了。

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

yjs*_*hen 5

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

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

建议同时设置以上两个设置,以便正确控制。