如何使用 Kafka REST 代理删除 Kafka 主题?

问题描述 投票:0回答:5

如何使用Kafka REST 代理删除Kafka主题?我尝试了以下命令,但它返回错误消息:

curl -X DELETE XXX.XX.XXX.XX:9092/topics/test_topic

如果不可能,那么如何更新删除消息并更新主题的方案?

rest apache-kafka http-proxy jms-topic
5个回答
6
投票

根据文档API参考,你不能通过REST代理删除主题,我同意他们的观点,因为这样的破坏性操作不应该通过暴露在外部的接口来实现。

可以使用命令行实用程序在运行broker的服务器上执行主题删除操作。请参阅如何在 apache kafka 中删除主题


2
投票

您可以在使用 POST /topics/(string: topic_name) REST 端点发布消息时更新消息的架构。如果新消息的架构与同一主题中的旧消息不向后兼容,您将必须配置架构注册表以允许发布不兼容的消息,否则您将收到错误。

请参阅此处的“Avro 请求示例”: http://docs.confluence.io/3.1.1/kafka-rest/docs/api.html#post--topics-(string-topic_name)

了解如何配置架构注册表以实现向前、向后或无兼容性,请参阅此处的文档: http://docs.confluence.io/3.1.1/schema-registry/docs/api.html#compatibility


0
投票

我确认从5.5.0以上版本开始支持,测试结果正常。 (REST 代理 API v3)

https://docs.confluence.io/current/kafka-rest/api.html#topic


0
投票

这很简单。当您在控制中心删除主题并意识到(使用检查功能嗅探浏览器流量)删除主题只不过是删除对代理的请求。

curl -s -X DELETE "http://kafka_broker:9021/2.0/kafka/${clusterid}/topics/${topic}"

0
投票

根据剩余代理文档,为了删除主题,调用如下:

curl -X DELETE <REST_PROXY_URL>/clusters/<CLUSTER_ID>/topics/<TOPIC_NAME>
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.