2017-09-18 3 views
1

카프카를 이벤트 소싱 시스템 용 이벤트 저장소로 사용합니다. 카프카 주제 삭제

은 통합 테스트, 나는 "오래된"데이터가 다음 테스트에 영향을 미치지 않음을 확인하기 위해, 기존의 각 주제에 대한

kafka-topics.sh --zookeeper localhost:2181 --delete --topic <topic-name> 

을 실행하여 카프카에서 현재 사용할 수있는 모든 항목을 삭제합니다.

주제가 삭제로 표시되지만 삭제되지 않는다는 것을 알고 있습니다. 그리고, 대부분의 경우 그것은 괜찮습니다.

그러나 일부 테스트 케이스에서는 주제를 레코드로 다시 작성하면 항목이 삭제되지 않는 것으로 나타납니다. 이 경우 카프카는 UnknownTopicOrPartitionException을 던졌습니다.

카프카가 주제를 삭제하도록 강제 할 수있는 방법이 있는지 궁금합니다 (또는 적어도 삭제 확률을 높이려면).

모든 조언에 감사드립니다. 나는 당신이 "오래된"데이터를 폐기하기 위해 항목을 삭제할 필요가 없습니다 카프카 0.11.0.1

답변

0

을 사용하고

. Kafka 서버를 중지하고 주제의 로그 디렉토리를 삭제하고 Kafka를 다시 시작하면됩니다.

주제 디렉토리는 주제 디렉토리의 접두사가있는 브로커 구성의 log.dir에 지정된대로 로그 디렉토리 내에 있습니다.

+0

답변 해 주셔서 감사합니다. 문제는 각 테스트마다 Kafka 브로커와 사육사 서버를 중지했다가 다시 시작하면 테스트 실행 시간이 크게 늘어납니다. 어떻게 든이 재부팅을 피할 수 있을까요? – Dmitriy

+0

사육사를 다시 시작할 필요는 없지만 카프카를 다시 시작하여 파일 핸들을 새로 고침해야한다고 생각합니다. – alirabiee

관련 문제