강의

멘토링

로드맵

Inflearn brand logo image

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

devon님의 프로필 이미지
devon

작성한 질문수

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

토픽과 파티션

카프카 클러스터에서 감당 가능한 파티션(레플리카) 수 문의

작성

·

62

·

수정됨

0

안녕하세요.

카프카 클러스터 규모를 추산하던 중 감당 가능한 토픽/파티션 수가 궁금하여 질문드립니다.

 

예를 들어,
Replication Factor를 3으로 가정할 때 레플리카 개수가 대략 10,000개가 나옵니다
(3,000 파티션 × replication factor 3)

  • 파티션 10개인 토픽 100개: 1,000개

  • 파티션 20개인 토픽 100개: 2,000개

  • 총 파티션: 3,000개

  • RF가 3일 때 전체 클러스터 레플리카 수: 9,000개

  • 추후 토픽 추가에 따라 레플리카 수가 최대 18,000개까지 늘어날 수 있음

토픽과 파티션 규모가 이 정도라면 카프카 클러스터를 적절한 단위(도메인)로 나눠야 할지,
아니면 한 클러스터에서 충분히 운용 가능한지 궁금합니다.

클러스터를 하나로 구성하여 사용하자니 레플리카 수가 감당 가능할지 고민되고
클러스터를 여러개로 구성하여 사용하자니 그에 따른 비용과 오버 엔지니어링이 고민됩니다.

파티션이 많을수록 파일 같은 자원을 더 사용하고 각 클라이언트로부터 수많은 요청을 받게 되는데, 브로커를 충분히 늘리면 감당 가능한 정도일까요?

큰 규모의 카프카 클러스터를 운용해본 적이 없어 강사님께서 카프카 클러스터를 어떻게 운용하셨는지 여쭤봅니다. (이정도 수준의 레플리카를 운용해본적이 있는지 등)

참고로 카프카는 3.x (KRaft 모드) 버전을 사용하려고 합니다.


아래는 참고한 자료입니다.

참고1) 컨플루언트 개발자 가이드에 따르면 토픽은 KRaft일 때 수백만 개 생성 가능하다고 하지만
결국 각 토픽당 파티션 수에 따라 달진다고 언급하고 있습니다.

참고2) 컨플루언트 블로그에 따르면 가용성을 고려하면 2,000~4,000개를 권장하고, 지연시간을 고려하면 100 × b × r (b: 브로커 수, r: 복제 팩터) 공식을 제안하고 있습니다.
그런데 10년 전에 작성된 글이라 현재는 더 많이 지원하지 않을까 싶습니다.

 

 

답변 2

1

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

안녕하세요.

카프카 클러스터의 적합한 파티션 개수는 리소스(cpu, memory, network, disk 등) 상황에 따라 달라집니다. 그렇기 때문에 단순히 1브로커당 x개의 파티션이 할당 가능하다고 하는 것은 아주 대략적인 추세일 뿐 정답이 아닙니다.

알려주신 파티션 개수 총 18,000개인 경우에 대해서 적절한 컴퓨팅 리소스 상황이라면 1개의 클러스터에서도 충분히 운용가능한 정도라고 생각되어 집니다. 파티션이 지속해서 많아지는 경우 브로커 개수를 늘리는 방법으로 적절히 운용하실 수 있을 거라 생각됩니다만, 상황에 따라 클러스터를 새로 만들어 운용하는 것도 나쁘지 않은 방법이라고 생각됩니다.

감사합니다.

devon님의 프로필 이미지
devon
질문자

네. 말씀하신 것처럼 리소스 상황에 따라 달라지기 때문에 장비 스펙, 브로커 수 등을 예시로 적어도 여전히 대략적인 추세만 될 것 같아 적지 않았습니다.

굳이 적자면 일반적인 개발 장비 수준으로 보면 될 것 같습니다
16 CPU, 32GB MEM, 1TB SSD

우선 예시로 든 파티션 수가 아주 비현실적인 수치는 아니라는 점을 참고해볼 수 있을 것 같습니다.

답변 감사합니다!

0

안녕하세요, 인프런 AI 인턴입니다. devon님께서 질문해주신 카프카 클러스터에서의 토픽 및 파티션 규모 관리에 대해 답변드리겠습니다.

카프카 클러스터의 파티션 수는 성능, 리소스 소모, 그리고 클러스터의 안정성 등에 영향을 미치기 때문에 적절히 관리하는 것이 중요합니다. 질문에서 주신 예를 바탕으로 설명드리겠습니다.

카프카 클러스터 관리 시 고려 사항

  1. 파티션 수 및 복제본 관리:

    • 카프카의 파티션은 고가용성을 위해 복제본을 가집니다. 주신 예에서는 총 3,000개의 파티션과 복제 팩터 3을 고려하여 전체 복제본 수가 9,000개에 해당합니다.
    • 복제본이 많아지면 각 브로커는 더 많은 데이터를 저장해야 하고, 이는 리소스를 강하게 요구합니다. 보통 한 브로커당 1,000-4,000 파티션을 권장하며, 이 범위를 넘어가면 반드시 클러스터 리소스를 조정해야 합니다.
  2. 브로커 수 증가:

    • 이론적으로 브로커의 수를 늘리면 관리할 수 있는 파티션 수가 증가하지만, 각 브로커당 적정한 파티션 수를 초과하면 성능 저하가 발생할 수 있습니다.
    • 또한, 브로커 추가는 네트워크 오버헤드 증가와 관리 복잡성을 초래할 수 있으니 신중한 계획이 필요합니다.
  3. 적절한 클러스터 크기:

    • 단일 클러스터에서 운영 가능한 파티션 수를 평가하기 위해서는 실제 환경에서의 각종 성능 모니터링 및 테스트가 필수적입니다.
    • 다양한 운영 환경에서 특성에 맞는 조정을 통해 안정성을 높일 수 있습니다.
  4. KRaft 모드:

    • KRaft 모드에서는 좀 더 유연하여 많은 양의 토픽 및 파티션을 처리할 수 있지만, 초기에는 충분한 테스트를 통해 능력을 확인하는 것이 좋습니다.

관련하여 아래의 유사한 기존 질문과 답변이 도움이 될 수 있습니다:

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

devon님의 프로필 이미지
devon

작성한 질문수

질문하기