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

권 철민님의 프로필 이미지
권 철민

작성한 질문수

카프카 완벽 가이드 - ksqlDB

ksqlDB Cluster 여부 - 박성범님 질문(제가 대신해서 적습니다)

작성

·

500

0

안녕하십니까,

박성범님이 수강평과 함께 질문을 올려 주셔서 제가 질문과 답변을 함께 적겠습니다.

먼저 질문 내용은 ksqlDB Cluster 구성 가능에 대한 질문입니다.

답변 2

0

안녕하세요, ksqldb 클러스터 관련 문의드립니다.

문서를 보면 토픽의 각 파티션에 대해서 active한 서버로 동작하고 active하지 않은 (본인의 담당이 아닌) 다른 파티션에 대해서는 stanby로 동작한다는 것 같습니다.

제가 이해한바로는 파티션 3개인 토픽에 대해 ksqldb 3개로 구성된 클러스터에서 쿼리를 수행한다면

partition-0, partition-1, partition-2에 대한 쿼리 수행을 각 ksqldb 서버에서 담당하게 되고 본인이 담당하지 않는 그 외 파티션에 대해서는 replica를 생성해 두는 것으로 이해되는데 그렇다면 분산 처리가 되는 클러스터가 아닌지 문의드립니다.

0

권 철민님의 프로필 이미지
권 철민
질문자

ㅎㅎ, 질문과 답변을 셀프로 하려니 조금 쑥쓰럽군요.

ksqlDB는 Cluster 구성을 지원한다고 스펙 또는 공식 문서에 나와 있습니다.

하지만 이 Cluster 구성은 Kafka Cluster 와 같이 1/N 기반의 Workload 분산 아키텍처라기 보다는 Active-Standby 개념의 장애 복구 서버라고 보시면 될 것 같습니다.

보통 여러개의 ksqlDB instance는 서로 독립적으로 움직이게 되며 이를 일반적인 Cluster 구성이라고 볼수는 없습니다

근데 이 Active-Standby 구성 역시 제가 시도해 보려고 했으나, 문서나 구성 방법이 명확하지 않아서 성공하지 못했습니다. 문서는 아래와 같습니다.

https://www.confluent.io/blog/ksqldb-pull-queries-high-availability/?_ga=2.70749906.39664618.1704533924-1660999802.1671985067

https://groups.google.com/g/ksql-users/c/59_AGd2Ufjw?pli=1

감사합니다.

좋은 답변 정말 감사합니다. 강사님

그런데 만약 kafka 한 토픽의 partition이 굉장히 많은 경우

분산처리 개념이 약한 ksqldb로 활용하려면

  1. 많은 수의 코어를 가진 컴퓨터를 안에서 ksqldb를 활용해 kafka의 큰토픽을 하부토픽으로 쪼갠다음 하부토픽 마다 따로 ksqldb를 사용해야 하는건가요 ?

  2. 아니면 kafak cluster만을 활용해 기존 토픽을 좀더 작은 토픽으로 나눈 이후 작은토픽에 ksqldb를 적용해야 하나요?

  3. 혹은 flink를 활용해서 분산처리를 하는게 나을지 ?

아니면 다른 더 좋은 대안이 있을까요?

권 철민님의 프로필 이미지
권 철민
질문자

음, 1, 2번 다 업무적으로 복잡하지 않을까 싶습니다.

대부분 분산까지 고려하지 않아도 KSQLDB 처리 성능이 나오지 않을까 싶습니다만...

정말 분산 처리까지 고려해야 할 정도로 현재 KSQLDB 성능이 안나오는지 부터 확인한 다음에 고민해도 늦지 않을 거 같습니다. 만약에 성능이 안나오면 고성능 SSD나 CPU Core를 수직 증설하는 방법이 더 낫지 않을까 싶습니다(물론 H/W 가격이 비싸지니까 당연히 초기 고려사항은 아니어서 질문을 하셨겠지만)

flink는 제가 잘 몰라서 ^^;; 패스 하도록 하겠습니다

 

권 철민님의 프로필 이미지
권 철민

작성한 질문수

질문하기