使用Apache Pulsar,我可以为某些订阅者保留消息,而对其他订阅者保留消息吗?

时间:2020-01-22 22:57:27

标签: apache-pulsar

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的等效功能)

1 个答案:

答案 0 :(得分:0)

您正确的认为持久性是在主题级别上。关于该主题的消息会持久存储在存储磁盘中,或者不持久地存储以获得更好的性能,但并不持久。订阅决定了如何将消息传递给消费者。订阅不会更改消息的保留方式。我认为去耦是强制性的,以分开存储消息和如何使用消息。

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