강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

blue-sky님의 프로필 이미지
blue-sky

작성한 질문수

Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)

Kafka Sink Connect 사용

mac 에서 터미널 세션을 끄고 다시 접속시 topic 존재유무..

해결된 질문

작성

·

391

0

안녕하세요.  
강의를 잘해주신 덕분에 강의를 잘 따라가고 있습니다.

이번 강의에서 강의결과와 다르게 나오고 또한 그것이 이해가 되질 않아서 질문을 드립니다.

제가 어제 "Kafka Source Connect 사용" 이라는 전 강좌를 듣고 터미널 상에서 exit를 하지 않고 세션만 종료한후 컴을 종료하고..

오늘 다시 같은 터미널에서 강의를 이어나갔습니다.
(저는 mac사용자 입니다)

그런데 결과가 아래와 같이...
어제 작업했던 내용이 한꺼번에 들어가 있었습니다. 혹시나 하는 마음에 싱크를 새로 만들어 mydb2와 연결해봤는데도 마찬가지였습니다.

강의를 따라가며 아래와 같이 topic 목록 리스트를 확인해보았습니다.

제 생각으로는 강의처럼 오늘 등록한것만 나와야 하지 않을까 생각되었습니다.

토픽이 목록에 없는것을 확인했고 나중에 만든거니까요..

그래서 consumer를 --from-beginning 옵션을 주어 출력해보았고 결과는 어제의 목록까지 모두 출력하였습니다. 

그렇다면 이 상황은 토픽 목록에는 없는데..
사실은 토픽이 존재했다는것인가요?
강의중에 토픽을 삭제하는 방법에 대해 설명하지 않으셨기 때문에 제가 임의적으로 토픽을 삭제하지 않았고 방법 또한 모릅니다.

토픽을 임의적으로 삭제 해야만 완전한 삭제가 되는것인지..
토픽목록을 확인하는 명령어로 확인했을때 원하는 토픽이 보이지 않으면 정말로 없는것인지 궁금합니다.

그리고 토픽을 삭제하는 방법 또한 알았으면 좋겠습니다.

감사합니다.

답변 1

1

Dowon Lee님의 프로필 이미지
Dowon Lee
지식공유자

안녕하세요, 이도원입니다. 

먼저 답변이 늦어 죄송합니다. 

질문 내용을 읽고 당시 답변했다고 생각했는데, 처리하지 못했었나 봅니다. 

말씀하신 내용 중, 맥OS에서 터미널을 강제 종료하였을때는 세션 정보가 남아 있을 수 있습니다. 다만, 세션 정보와 상관없이 토픽을 정상적으로 삭제하지 않으면 토픽정보는 카프카 서버를 재기동해도 유효합니다. 따라서, 다시 Zookeeper와 Kafka를 기동했을 때 이전에 생성했던 Topic의 정보는 보입니다. 다만, 올려주신 내용 중에 Topic 목록에는 존재하지 않는데, Consumer에서 메시지를 가져왔다고 하는 부분은 정확한 원인을 모르겠네요. 다만, Topic 목록을 가져올때, 서버가 완전하게 기동중이지 못해서, Log 정보에서 Topic정보를 모두 가져오지 못한 상태에서 목록에 표시가 되지 않았을 가능성도 있지 않을까 싶습니다.

Topic의 정보는 kafka-run-class.sh라는 파일에 보시면, LOG_DIR 정보에서 확인하실 수 있으며, 일반적으로 kakfa를 기동하는 디렉토리에 logs라는 이름 또는 /tmp 아래에 위치해 있을 겁니다.이 logs 디렉토리를 삭제하시면, Topic의 모든 정보가 사라지게 됩니다. 

http://kafka.apache.org/quickstart#quickstart_kafkaterminate

참고로 Topic의 정보를 삭제하는 명령어는 아래와 같습니다. (다만 윈두우 OS에서는 토픽 삭제 시 오류가 발생할 수 있습니다)

./bin/kafka-topics.sh --delete --topic [토픽이름] --bootstrap-server localhost:9092

감사합니다. 

blue-sky님의 프로필 이미지
blue-sky

작성한 질문수

질문하기