인프런 커뮤니티 질문&답변
한대의 PC 에서의 Docker container 를 통한 cluster 구성
작성
·
134
0
안녕 하세요. 개발자님 궁금 한 것이 있어 문의 드립니다.
1.
1대의 PC 에서 docker container 환경에서 confluent kafka를 container 로 3개 를 뛰어서, 3 개의 Broker 환경을 만든다
가정 하고 --replication-factor=3 개로 설정 해서 사용 하는 방법에 대해서 어떤 생각을 가지고 있으신가요?
2.
docker image confluent kafka 를 사용 하는 것은 기존 container 환경에서 하지 않는 방시과 성능적인 차이가 있을까요?
너무 궁금 합니다.
답변 2
0
안녕하십니까,
가용성은 보통 멀티노드를 기반으로 합니다. 왜냐하면 노드가 죽는 경우를 기본 가용성으로 생각하기 때문입니다. 한개의 노드에서 3개의 브로커를 띄운다면 가용성 측면에서는 노드가 죽으면 다 죽기 때문에 일견 장점이 없어 보일 수도 있지만, 개별 브로커가 장애가 나는 경우 별 문제 없이 정상적인 운영이 가능하다는 장점이 있을 수는 있습니다.
성능적인 측면에서는 큰 장점이 없을 것 같습니다 replication factor는 multi node 환경을 감안해서 만들어 졌습니다. 그러니까 성능적인 측면 보다는 가용성 측면이 많이 고려된 아키텍처 입니다. 한개 노드가 죽으면 서비스를 못하는데, 굳이 3개 broker가 replication factor 3으로 I/O를 낭비해 가면서(성능 저하 요소를 감안하면서) 서비스할 이유는 없어 보입니다.
docker를 사용하면 아무래도 가상환경이니까 성능이 조금은 떨어질 수 있겠지만, 5% 미만 정도 아닐까 싶습니다.
감사합니다.
0
안녕하세요, 인프런 AI 인턴입니다.
김동선님의 질문은 Kafka를 로컬 환경에서 Docker 컨테이너로 클러스터를 구성하는 방법과 그에 따른 성능 및 차이점을 알아보고자 하는 것으로 보입니다.
한 PC에서 Docker 컨테이너로 Kafka 클러스터 구성을 하기
- 구성 가능성: 한 대의 PC에서 Docker 컨테이너를 이용하여 3개의 Kafka 브로커를 생성하고 클러스터를 구성하는 것은 가능합니다. 이 방법을 사용하면 각 컨테이너가 독립적인 네트워크 환경을 제공하므로 실제 클러스터 환경과 유사하게 테스트할 수 있습니다.
--replication-factor를 3으로 설정하면 데이터의 고가용성과 내구성을 시험할 수 있습니다.
- 운영 고려사항: 하지만 실제 운영 환경에서는 하나의 물리적 노드에서 여러 브로커를 운영하는 것은 권장되지 않습니다. 이는 단일 장애 지점(SPOF)이 되어 모든 브로커들이 동시에 실패할 가능성이 있기 때문입니다.
- 구성 가능성: 한 대의 PC에서 Docker 컨테이너를 이용하여 3개의 Kafka 브로커를 생성하고 클러스터를 구성하는 것은 가능합니다. 이 방법을 사용하면 각 컨테이너가 독립적인 네트워크 환경을 제공하므로 실제 클러스터 환경과 유사하게 테스트할 수 있습니다.
Docker 이미지로 Kafka 운영의 차이점
- 장점: Docker를 사용하면 빠르고 쉽게 환경을 구성하고 테스트할 수 있습니다. 또한, 의존성 관리가 쉬워 개발 환경의 일관성을 유지하는 데 도움을 줍니다.
- 성능 차이: 성능 측면에서는 Docker가 약간의 오버헤드를 추가할 수 있지만, 이는 일반적인 개발 및 테스트 환경에서 크게 문제가 되지 않습니다. 다만, 고성능을 요구하는 환경에서는 Bare Metal 대비 약간의 성능 저하가 있을 수 있습니다.
- 장점: Docker를 사용하면 빠르고 쉽게 환경을 구성하고 테스트할 수 있습니다. 또한, 의존성 관리가 쉬워 개발 환경의 일관성을 유지하는 데 도움을 줍니다.
관련 게시물을 참고하실 수 있도록 링크를 제공해드립니다. 더 상세한 정보나 다른 시각에서의 팁을 얻으실 수 있을 것입니다:
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.





