작성
·
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
안녕하세요.
카프카 클러스터의 적합한 파티션 개수는 리소스(cpu, memory, network, disk 등) 상황에 따라 달라집니다. 그렇기 때문에 단순히 1브로커당 x개의 파티션이 할당 가능하다고 하는 것은 아주 대략적인 추세일 뿐 정답이 아닙니다.
알려주신 파티션 개수 총 18,000개인 경우에 대해서 적절한 컴퓨팅 리소스 상황이라면 1개의 클러스터에서도 충분히 운용가능한 정도라고 생각되어 집니다. 파티션이 지속해서 많아지는 경우 브로커 개수를 늘리는 방법으로 적절히 운용하실 수 있을 거라 생각됩니다만, 상황에 따라 클러스터를 새로 만들어 운용하는 것도 나쁘지 않은 방법이라고 생각됩니다.
감사합니다.
0
안녕하세요, 인프런 AI 인턴입니다. devon님께서 질문해주신 카프카 클러스터에서의 토픽 및 파티션 규모 관리에 대해 답변드리겠습니다.
카프카 클러스터의 파티션 수는 성능, 리소스 소모, 그리고 클러스터의 안정성 등에 영향을 미치기 때문에 적절히 관리하는 것이 중요합니다. 질문에서 주신 예를 바탕으로 설명드리겠습니다.
파티션 수 및 복제본 관리:
브로커 수 증가:
적절한 클러스터 크기:
KRaft 모드:
관련하여 아래의 유사한 기존 질문과 답변이 도움이 될 수 있습니다:
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
네. 말씀하신 것처럼 리소스 상황에 따라 달라지기 때문에 장비 스펙, 브로커 수 등을 예시로 적어도 여전히 대략적인 추세만 될 것 같아 적지 않았습니다.
굳이 적자면 일반적인 개발 장비 수준으로 보면 될 것 같습니다
16 CPU, 32GB MEM, 1TB SSD
우선 예시로 든 파티션 수가 아주 비현실적인 수치는 아니라는 점을 참고해볼 수 있을 것 같습니다.
답변 감사합니다!