在使用MessageHub进行开发时,我经常发现我想从某个主题中清除我的开发数据。
如何清除MessageHub主题?
这个问题类似于Purge Kafka Queue,但是不同,因为这个问题是针对apache的,我不确定Message是否支持kafka命令行工具。
发布于 2016-12-05 23:08:20
从Message中清除Kafka主题的唯一方法是删除和重新创建主题。您可以使用Message服务提供的Web手动完成此操作。或者,您可以使用REST来管理Kafka主题。使用REST的优点是可以编写脚本。
Message在Swagger中有文档:https://github.com/ibm-messaging/message-hub-docs/blob/master/kafka-administration-api/KafkaTopicManagement.yaml。如果您不是Swagger Guru,那么要删除的其余调用是:
POST /admin/topics/<TOPICNAME>您将需要使用VCAP_SERVICES头指定消息集线器API密钥(来自X-Auth-Token )来验证请求。因此,示例curl实现如下所示:
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>其中之一是卡夫卡主题删除是异步的。因此,在重新创建主题之前,需要确保原始主题的删除过程已经完成。这可以通过轮询以下端点来实现,直到它返回404 (未找到)状态代码为止:
GET /topics/<TOPICNAME>(同样,X-Auth-Token头必须存在)。卷曲:
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 -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/topicshttps://stackoverflow.com/questions/40981534
复制相似问题