2016-12-05 3 views

답변

4

Message Hub에서 Kafka 주제를 제거하는 유일한 방법은 주제를 삭제하고 다시 만드는 것입니다. Message Hub 서비스에서 제공하는 웹 UI를 사용하여 수동으로이 작업을 수행 할 수 있습니다. 또는 Kafka 주제를 관리하는 데 REST API를 사용할 수 있습니다. 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 헤더를 사용 (VCAP_SERVICES에서) 당신의 메시지 허브 API 키를 지정해야합니다

.

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 (찾을 수 없음) 상태 코드를 반환 할 때까지 폴링하여 다음 엔드 포인트를 얻을 수있다. 컬 는 :

POST /admin/topics 

요청의 본문 파라미터 설명와 JSON 문서를 포함

(재) 항목을 만들
curl -k -v -H -H 'Accept: application/json' \ 
    -H 'X-Auth-Token: yourapikeyhere' \ 
    https://admin-endpoint-goes-here/topics/<TOPICNAME> 

은 (AN X-Auth-Token와 같은) 다음 REST 요청을 필요 만들 주제 예를 들면 다음과 같습니다 컬에서

{                     
    "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