인프런 커뮤니티 질문&답변
auto.create.topics.enable=false 설정
작성
·
48
0
리서치를 하다보니 실무에서는 auto.create.topics.enable=false 설정을 사용하는게 좋다는 글을 많이 보게 되었습니다.
네이밍 컨벤션이나 예상치 못한 topic 의 생성 등을 방지하기 위함으로 이해했는데요.
그럼, xxx.dlt 와 같은 topic 들도 직접 생성을 해줘야 하는지 궁금합니다.
그리고, 실제로 실무에서 해당 설정을 많이 사용하는지 또한 궁금합니다 🙂
답변 2
0
안녕하세요! 질문 잘 해주셨어요 ~
질문해 주신 내용에 대해 답변드려볼게요 !
우선 말씀하신 대로 실무에서는 auto.create.topics.enable=false 설정을 많이 사용해요 !
Kafka 기본 설정은 프로듀서가 처음 메시지를 전송할 때 해당 토픽이 없으면 자동으로 생성하는데,
이렇게 되면 오타나 네이밍 실수로 인한 불필요한 토픽이 계속 생기는 문제가 발생할 수 있거든요 !
그래서 운영 환경에서는 대부분 이 옵션을 false로 설정해서 자동 생성을 막고,
필요한 토픽은 명시적으로 미리 생성하는 방식을 사용해요 !
"xxx.dlt 와 같은 topic 들도 직접 생성을 해줘야 하는지 궁금합니다."
-> 네 DLT도 직접 kafka-topics 명령어나 인프라 코드로 미리 생성해둬야 해요 !
보통 실무에서는 topic, DLT, retry 토픽들을 함께 관리하는 스크립트를 별도로 두고 관리해요 :)
추가로 궁금하신 점 있으시면 편하게 질문 남겨주세요 ~
안녕하세요! 질문 잘 해주셨어요 ~
추가 질문에 대해 답변드려 볼게요 !
결론부터 말씀드리면 직접 suffix를 계산해서 retry 토픽들을 각각 새로 생성할 필요는 없고,
Spring Kafka의 @RetryableTopic를 사용하시면 됩니다 :)
Spring Kafka의 @RetryableTopic 을 활용 하시면
auto.create.topics.enable=false로 설정을 해두더라도
attempts, delay, multiplier에 맞춰
필요한 retry/DLT 토픽을 자동으로 계산해서 생성하고,
네이밍 전략 또한 인덱스 기반과 지연시간 기반 suffix를 제공해줘요 !
아래 문서들을 참고하시면 도움이 되실것 같아 같이 첨부드려요 :)
https://docs.spring.io/spring-kafka/reference/retrytopic/retry-config.html
https://docs.spring.io/spring-kafka/reference/retrytopic/topic-naming.html
추가로 또 궁금하신 점 있으시면 편하게 질문 남겨주세요 ~~
0
안녕하세요, 인프런 AI 인턴입니다. writer0713님.
Kafka의 auto.create.topics.enable=false 설정은 실무에서 유용하게 사용되는 옵션입니다. 이 설정을 사용하면, 프로듀서에 의해 자동으로 새로운 토픽이 생성되는 것을 방지할 수 있습니다. 이렇게 함으로써 네이밍 컨벤션의 일관성을 유지하고, 예상치 못한 토픽의 생성을 막아 시스템의 혼란을 줄일 수 있습니다.
auto.create.topics.enable=false 설정의 장점
- 네이밍 컨벤션 유지: 잘못된 이름이나 맞춤법 오류로 인한 토픽 생성 방지
- 보안 및 관리 용이: 누락되거나 불필요한 토픽이 생성될 가능성을 줄임
질문하신 xxx.dlt 토픽의 경우
만약 auto.create.topics.enable=false 설정을 활성화한다면, 모든 토픽을 수동으로 생성해야 합니다. 즉, Dead Letter Topic (DLT)과 같은 토픽들도 수동으로 생성해야 합니다. 이러한 방식은 시스템의 토픽 관리에 대한 명확한 통제권을 부여하지만, 초기 설정 시 추가적인 작업을 필요로 할 수 있습니다.
실무에서의 사용
많은 기업들이 auto.create.topics.enable=false 설정을 실무에서 사용하고 있습니다. 기본적으로 많은 데이터 파이프라인에서 이러한 설정을 통해 데이터 관리 체계를 강화하고 있습니다.
관련된 추가 정보는 아래 유사한 질문 링크를 참고하시면 도움이 될 것입니다:
- Kafka의 토픽 자동 생성 및 관리 - 실무 경험자들의 토픽 관리 방법론을 다룹니다.
- Kafka에서의 DLT 설정 및 관리 -
Dead Letter Topic설정에 대한 다양한 사례를 소개합니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.





retry 의 경우, suffix 뒤에 delay 값이 붙는것 같은데요. 이것도 그럼 직접 delay, attempts, multiplier 를 계산해서 생성해줘야 하나요..?
예를 들면,
order.create와 관련된 토픽들을 수동으로 생성할때 retry attempt 가 3, delay 가 1000, multiplier 가 2.0 이라고 하면 아래 3개를 만들어줘야 하나요?order.create.retry-1000order.create-retry-2000order.create-retry-4000이러면 retry 옵션을 바꿀때마다 retry 토픽을 새로 생성한다던가 하는 추가작업이 필요할거 같은데 맞을까요?