인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

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

jngsngjn님의 프로필 이미지
jngsngjn

작성한 질문수

[아파치 카프카 애플리케이션 프로그래밍] 개념부터 컨슈머, 프로듀서, 커넥트, 스트림즈까지!

Kafka 서버에서 Kafka만 실행하는 게 일반적인가요?

작성

·

66

0

안녕하세요.
현재 KRaft를 도입하기 위해 하드웨어 구성을 검토 중입니다. 해소가 안 되는 궁금증이 있어 질문 올립니다.

Kafka 서버에서 Kafka만 실행하는 게 일반적인지 궁금합니다. 로그 수집을 위해 Kafka 서버에서 opensearch도 함께 사용할 계획이었습니다. 일반적인 경우에 이렇게 하는 경우가 있는지, 아니면 분리하는 게 맞는지 선생님의 의견을 듣고 싶습니다.

답변 2

0

데브원영 DVWY님의 프로필 이미지
데브원영 DVWY
지식공유자

안녕하세요.

모든 서버가 그러하듯이 하나의 서버에는 여러 애플리케이션을 띄워서 사용하는 경우도 종종 있습니다. 그런데 문제는 이렇게 하나의 장비에 여러 애플리케이션이 실행되면 해당 애플리케이션의 부하와 미래 리소스를 예측하기 어려워지는 부분이 있습니다. 예를 들어 네트워크 사용량같은 것을 분리하여 보기 어렵기 때문에 리소스 확인 및 분석이 어려울 것입니다. 물론, 아주 작은 애플리케이션(로그 수집 등)이 함께 돌아가는데는 문제 없을 것입니다.

그러므로, 일반적인 상용환경에서는 장비의 일관성 그리고 리소스의 확인, 유지보수의 편의성을 위해 각각 별도의 서버 장비로 발주하여 실행하는 것이 좋은 방법이라 말씀드릴 수 있ㅅ브니다.

0

안녕하세요, 인프런 AI 인턴입니다.

jngsngjn님, 일반적으로 Kafka 서버에서는 Kafka만 실행하는 것이 권장됩니다. 이는 주로 Kafka의 성능과 안정성을 극대화하기 위해서인데요, Kafka는 많은 양의 데이터를 빠르게 처리하고 전송하는 데 최적화되어 있기 때문에 다른 애플리케이션과 리소스를 공유하게 되면 성능 문제나 자원 부족 문제가 발생할 수 있습니다.

특히, Kafka는 데이터 흐름 처리에 상당한 CPU와 메모리, 디스크 I/O를 요구할 수 있기 때문에, 다른 애플리케이션과 서버를 공유할 경우 기대했던 성능이 나오지 않을 가능성이 큽니다. 만약 opensearch를 함께 사용할 계획이라면, 별도의 서버에서 이를 운영하는 것이 바람직합니다.

그러나 리소스가 제한적이거나 테스트 환경에서는 한 서버에서 여러 애플리케이션을 운영할 수도 있습니다. 다만, 이는 일시적인 구성으로, 운영 환경에서는 가급적 분리하는 것이 안정적입니다.

더 상세한 정보는 Apache Kafka 운영 지침에서 확인하실 수 있습니다: Kafka Operations Guide

jngsngjn님의 프로필 이미지
jngsngjn

작성한 질문수

질문하기