1

https://pulsar.apache.org/docs/en/next/admin-api-persistent-topics/

https://pulsar.apache.org/docs/en/next/admin-api-non-persistent-topics/

我有一个主题,对于大多数订阅者来说,持久性很重要。我想(暂时)使用一个在断开连接后不关心消息的客户端订阅该主题,因此我不希望将大量消息写入其积压。据我所知,持久性只能在主题级别上进行配置。有没有办法实现这种基于订阅者的持久性?

(换句话说,与使用 cleanSession=True 连接到 MQTT 的等效功能)

4

1 回答 1

0

您是正确的,持久性是在主题级别。该主题的消息要么被持久化到存储磁盘,要么不持久化以实现更好的性能但不持久。订阅决定了消息如何传递给消费者。订阅不会改变消息的持久化方式。我认为解耦对于将消息的存储与消息的消费方式分开是强制性的。

每条消息在主题中只有一个副本。订阅只是维护各种游标来跟踪消息消耗。订阅没有重复的消息,而是指向它们的指针。我希望这有助于解释为什么持久性是一个主题级别的概念,而不是订阅。

于 2020-01-23T00:48:01.213 回答