在使用messagehub进行开发时,我经常会发现要从主题中清除开发数据。如何清除messagehub主题?这个问题类似于清除kafka队列,但有所不同,因为这个问题是针对apachekafka的,我不确定messagehub是否支持kafka命令行工具。
tjjdgumg1#
从消息中心清除Kafka主题的唯一方法是删除并重新创建该主题。您可以使用MessageHub服务提供的web ui手动执行此操作。或者,您可以使用restapi来管理kafka主题。使用restapi的优点是可以编写脚本。消息中心rest api在这里的swagger中进行了说明:https://github.com/ibm-messaging/message-hub-docs/blob/master/kafka-administration-api/kafkatopicmanagement.yaml. 如果你不是一个 swagger 的大师,那么剩下的删除调用是:
POST /admin/topics/<TOPICNAME>
您需要使用 X-Auth-Token 头来验证请求。因此,示例curl实现如下所示:
X-Auth-Token
curl -k -v -X DELETE -H 'Content-Type: application/json' -H 'Accept: */*' \ -H 'X-Auth-Token: yourapikeyhere' \ https://admin-endpoint-goes-here/admin/topics/<TOPICNAME>
其中一个问题是Kafka主题删除是异步的。因此,在重新创建主题之前,需要确保原始主题的删除过程已完成。这可以通过轮询以下端点来实现,直到它返回404(未找到)状态代码:
GET /topics/<TOPICNAME>
(同样是 X-Auth-Token 标题必须存在)。 curl :
curl -k -v -H -H 'Accept: application/json' \ -H 'X-Auth-Token: yourapikeyhere' \ https://admin-endpoint-goes-here/topics/<TOPICNAME>
要(重新)创建主题,需要以下rest请求 X-Auth-Token ):
POST /admin/topics
请求的主体包含一个json文档,其中包含描述要创建的主题的参数。例如:
{ "name": "TOPICNAME", "partitions": 2 }
在curl中,这将是:
curl -k -v -H 'Content-Type: application/json' -H 'Accept: */*' \ -H 'X-Auth-Token: yourapikeyhere' \ -d '{ "name": "TOPICNAME", "partitions": 2 }' \ https://admin-endpoint-goes-here/admin/topics
1条答案
按热度按时间tjjdgumg1#
从消息中心清除Kafka主题的唯一方法是删除并重新创建该主题。您可以使用MessageHub服务提供的web ui手动执行此操作。或者,您可以使用restapi来管理kafka主题。使用restapi的优点是可以编写脚本。
消息中心rest api在这里的swagger中进行了说明:https://github.com/ibm-messaging/message-hub-docs/blob/master/kafka-administration-api/kafkatopicmanagement.yaml. 如果你不是一个 swagger 的大师,那么剩下的删除调用是:
您需要使用
X-Auth-Token
头来验证请求。因此,示例curl实现如下所示:其中一个问题是Kafka主题删除是异步的。因此,在重新创建主题之前,需要确保原始主题的删除过程已完成。这可以通过轮询以下端点来实现,直到它返回404(未找到)状态代码:
(同样是
X-Auth-Token
标题必须存在)。 curl :要(重新)创建主题,需要以下rest请求
X-Auth-Token
):请求的主体包含一个json文档,其中包含描述要创建的主题的参数。例如:
在curl中,这将是: