通常在使用MessageHub進行開發時,我發現我想從主題中清除我的開發數據。如何清除Message Hub主題?
如何清除MessageHub主題?
此問題與Purge Kafka Queue類似,但不同,因爲該問題針對的是apache kafka,我不確定Message Hub是否支持kafka命令行工具。
通常在使用MessageHub進行開發時,我發現我想從主題中清除我的開發數據。如何清除Message Hub主題?
如何清除MessageHub主題?
此問題與Purge Kafka Queue類似,但不同,因爲該問題針對的是apache kafka,我不確定Message Hub是否支持kafka命令行工具。
從Message Hub中清除Kafka主題的唯一方法是刪除並重新創建主題。您可以使用Message Hub服務提供的Web UI手動執行此操作。或者,您可以使用REST API來管理Kafka主題。使用REST API的優點是可以編寫腳本。
Message Hub REST API記錄在Swagger中:https://github.com/ibm-messaging/message-hub-docs/blob/master/kafka-administration-api/KafkaTopicManagement.yaml。如果你不是一個揚鞭大師那麼REST調用來刪除是:
POST /admin/topics/<TOPICNAME>
您需要使用X-Auth-Token
頭進行身份驗證請求到指定信息中心API密鑰(來自VCAP_SERVICES)。因此,一個樣本捲曲的實現將是這樣的:
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>
的一個疑難雜症是卡夫卡的話題缺失是異步的。因此,在重新創建主題之前,您需要確保原始主題的刪除過程已完成。
GET /topics/<TOPICNAME>
(再次X-Auth-Token
頭必須存在):這可以通過輪詢,直到它返回404(未找到)狀態代碼來實現以下端點。 在捲曲:
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/topics