Как я могу удалить все сообщения из темы Apache Pulsar?

Есть ли способ использовать инструменты командной строки Pulsar для удаления всех сообщений по теме? У него еще нет подписок, и, насколько я могу судить, инструменты, которые делают это, работают с подпиской. Мне нужно избавиться от старого барахла перед запуском сервиса, который потребляет тему.

2 ответа

Решение

@ Дэвид Тинкер, попробуйте эту команду удаления темы:$ pulsar-admin persistent delete persistent://test-tenant/ns1/tp1 Перед выполнением не должно быть активной подписки или производителя, подключенного к ней. Если в теме есть подписка и продюсеры подключены, и вы позаботились о существующих данных, вы можете добавить --force в конце. После удаления этой темы, когда производятся данные, производитель переподключится и автоматически создаст тему с тем же именем.

См. документацию .

Перечислите темы с помощью:

      pulsar-admin persistent list tenant/namespace

Затем, чтобы удалить их:

      pulsar-admin topics delete "persistent://tenant/namespace/topic

или:

      pulsar-admin topics delete "persistent://tenant/namespace/topic" --force

Проверить подписчиков можно с помощью:

      pulsar-admin persistent subscriptions "persistent://tenant/namespace/topic"

Вы можете проверить издателей с помощью (раздел издателя выходных данных):

      pulsar-admin topics stats "persistent://tenant/namespace/topic"

Если вы используете опцию принудительного использования, будьте осторожны, любые подключенные издатели могут немедленно воссоздать тему.

Другие вопросы по тегам