С Apache Pulsar, могу ли я сохранять сообщения для некоторых подписчиков, но не для других? - PullRequest
1 голос
/ 23 января 2020

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

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

У меня есть topi c, для которого постоянство важно для большинства подписчиков. Я хочу (временно) подписаться на topi c с клиентом, который не заботится о сообщениях после его отключения, и поэтому я не хочу, чтобы тонна сообщений записывалась в его очередь. Насколько я могу судить, постоянство настраивается только на уровне topi c. Есть ли способ добиться этого на основе подписки?

(другими словами, эквивалентная функциональность для подключения к MQTT с помощью cleanSession = True)

1 Ответ

0 голосов
/ 23 января 2020

Вы правы, что настойчивость находится на верхнем c уровне. Либо сообщения с этой топикой c сохраняются на диске или не сохраняются для достижения лучшей производительности, но не являются долговечными. Подписка решает, как сообщения могут быть доставлены потребителям. Подписка не меняет способ сохранения сообщений. Я думаю, что разделение является обязательным, чтобы отделить хранилище сообщения от способа его использования.

Каждое сообщение имеет только одну копию в топи c. Подписки просто поддерживают различные курсоры, чтобы отслеживать потребление сообщений. Подписка не имеет дубликатов сообщений, но содержит указатели на них. Надеюсь, это поможет объяснить, почему постоянство является концепцией уровня topi c, а не для подписки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...