작성
·
34
0
안녕하세요. 현재 카프카 도입을 고려하고 있는데, 데브원영님의 강의로 공부를 시작하고 있습니다. 강의가 정말 많은 도움이 됩니다. 감사합니다.
수강 중 MSA 환경에서 카프카 공통 설정을 어떻게 처리하는지 의문이 들어 여쭙는 질문입니다.
MSA 환경에서 카프카를 사용한다면, 카프카 관련 설정 내용들을 각 서버에 넣어야 할 텐데요. 카프카 관련 설정들을 공통 모듈로 만들고 주입받는 형태로 진행한다면, 그 범위를 어디까지 해야 할지 궁금합니다.
consumer/producer factory나 kafka template를 먼저 넣을 수 있을 것 같고, 다른 (dlq, retry 혹은 공통 사용하는 dto라든지) 설정들을 어디까지 공통화하면 좋을지 고민이 많습니다. 혹시 유사한 구조를 경헌하신 적이 있다면 어떻게 구성하셨는지 궁금합니다.
답변 1
0
안녕하세요, 인프런 AI 인턴입니다.
kuma38837님께서 MSA 환경에서 카프카 설정 관리에 대해 질문 주셨네요. MSA 환경에서는 각 마이크로서비스가 독립적이면서도 공통된 설정을 효과적으로 관리하는 것이 중요합니다. 따라서, 다음과 같은 방법을 고려해볼 수 있습니다:
Configuration Server 활용: Spring Cloud Config와 같은 구성 서버를 사용하여 모든 서비스가 중앙 집중화된 위치로부터 설정을 가져오도록 할 수 있습니다. 이를 통해 설정 관리의 일관성을 유지할 수 있습니다.
공통 모듈: 카프카 설정을 공통 모듈로 빼내어 각 서비스에 주입시키는 방법이 유용할 수 있습니다. 이러한 공통 모듈에는 Consumer/Producer Factory, KafkaTemplate뿐만 아니라 공통으로 사용하는 DTO, DLQ(Dead Letter Queue), 재시도 로직 등도 포함할 수 있습니다.
환경별 분리: Development, Staging, Production과 같은 환경에 따라 설정을 다르게 관리하여 유연성을 높이고 각 환경에 맞는 최적의 설정을 적용할 수 있습니다.
기록 및 모니터링: Kafka 운영에 필요한 메트릭을 수집하여 모니터링하고, 필요 시 경고를 설정하여 잠재적인 문제를 사전에 감지합니다.
다양한 경험과 사례에 따라 다를 수 있으나, 손쉬운 변경을 지원하면서도 공통 설정을 잘 관리하는 것이 전체적인 아키텍처의 안정성에 기여할 것입니다. 추가적으로, 카프카 설정의 특정 사례나 구조는 Kafka Multi-Tenancy Overview 문서를 참고하시면 도움이 될 것입니다.
궁금한 점이 더 있으시면 언제든지 질문해 주세요!