Как я могу удалить все сообщения из темы 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"
Если вы используете опцию принудительного использования, будьте осторожны, любые подключенные издатели могут немедленно воссоздать тему.