주키퍼, 카프카 질문사항

주키퍼, 카프카 질문사항

주키퍼, 카프카 질문사항으로 많이 나오는 항목에 대한 답변 정리를 하겠습니다. 해당 내용을 바탕으로 실무에서 카프카가 어떻게 활용되고 있는지를 보다 명확히 알 수 있는 계기가 되었으면 합니다.

주키퍼

  • 주키퍼는 몇 대로 구성하는 게 가장 좋은가?

→ 주키퍼는 홀수로 구성하고 안정적인 운영 환경에서는 5대로 구성함. 작은 규모는 3대.

  • 주키퍼의 하드웨어 권장 사양은?

→ 일반 CPU / 4G~8G 메모리 / 240~480 SSD / 1G NIC 등 일반적인 웹 서버 정도 수준으로 구성

  • 주키퍼의 모니터링은 어떻게 하는가?

→ JMX를 이용해 모니터링 가능. 4글자 단어(Four Letter Words)라는 것을 지원하므로 mntr 같은 단어를 이용해 모니터링 가능함. 주키퍼 공식 홈페이지 참조.

Apache ZooKeeper

  • 주키퍼와 카프카를 동일한 서버에서 사용해도 되는가?

→ 사용 가능. 하지만 장애 대응 등을 고려하면 별도로 분리해서 사용하는 것을 권장.

카프카 질문사항

  • 브로커의 하드웨어 권장 사양은 어떻게 되는가?

→ 24 코어 CPU / 64~128GB 메모리 / 4~8TB SATA 12개 / 10G NIC

  • 메시지는 손실되지 않는가?

→ 100% 보장은 안됨. 다만 토픽의 리플리케이션 팩터 수 3, min.insync.replicas 2로 설정하면 카프카로 저장된 메시지는 손실되지 않음. 3대 전부의 하드웨어 장애 시에는 보장 못함.

  • 토픽의 적절한 파티션 수는?

→ 정답은 없음. 파티션 수는 한 번 늘이면 줄일 수 없음. 아래는 파티션 수 예측할 수 있는 사이트임.

https://eventsizer.io

  • 운영 중에 파티션 수를 늘릴 수 있는가?

→ 늘릴 수 있음. 8.3절 ‘카프카의 확장’ 참조

  • 파티션을 줄일 수 있는가?

→ 불가함. 동일한 토픽명을 사용해야 하고 파티션 수는 줄여야 하는 경우 → 프로듀서와 컨슈머를 중단한 상태에서 토픽을 삭제하고 동일한 토픽명과 원하는 수의 파티션으로 재생성하는 방법이 있음.

  • 토픽의 이름을 바꿀 수 있는가?

→ 불가함. 토픽의 재명명 기능은 지원하지 않음.

  • 토픽의 리플리케이션 팩터 수를 늘려야 하는데 운영 중에 늘릴 수 있는가?

→ 토픽의 리플리케이션 팩터 수는 운영 중에 늘릴 수 있음. 사용량이 적은 시간에 작업하고 현재의 리더가 그대로 유지되도록 변경 권장.

  • 토픽의 리플리케이션 팩터 수를 4로 해도 되는가?

→ 가능함. 리플리케이션 팩터 수가 커지면 디스크 공간도 많이 필요하므로 확인 필요.

  • 브로커의 디스크를 로컬 디스크 대신 SAN이나 NAS를 사용해도 되는가?

→ 사용 가능함. 단, 비용면에서 브로커의 장점 중 저렴한 디스크를 사용해도 높은 성능을 낼 수 있다는 것인데, 고배용의 디스크를 사용하면 비효율적임. 네트워크 병목으로 인한 디스크 성능 저하 문제도 있음.

  • 브로커의 디스크 사용량이 가득찼을 경우 대응책은?

→ 토픽의 보관 주기를 짧게 설정하거나 이렇게 했을 경우 줄어들지 않으면 보관 주기를 체크하는 간격의 기본값이 5분이므로 5분 후에 확인해 보면 됨.

  • 하나의 클러스터에서 브로커들의 하드웨어 사양이 모두 동일해야 하는가?

→ 강제 사항은 아님. 단, 동일해야 운영 관리 측면에서 효율적임. 사양이 다르면 처리 성능, 저장 용량도 다르기 때문임.

  • 브로커의 디스크는 RAID로 구성하는 것이 좋은가?

→ 운영 측면에서 RAID 구성 더욱 효율적임. 단 JBOD 구성도 환경에 따라 고려 가능.

  • 오픈 파일과 관련한 오류가 발생하면서 브로커가 다운되었음.

→ 많은 로그 세그먼트를 사용하면 운영 체제의 오픈 파일 관련 설정을 조정해줘야 함. 현재 사용 중인 브로커의 오픈 파일 디스크립터는 ‘lsof -p 브로커 pid’를 이용해 확인 가능, 늘리는 방법은 시스템 레벨(/etc/sysctl.conf 파일에서 fs.file-max 수정)과 유저 레벨(/etc/security/limits.conf 파일에서 nofile 수정)에서 변경함.

  • 브로커의 옵션 설정이 제대로 적용되었는지 확인 방법은?

→ CLI(kafka-configs.sh)를 이용해 브로커 아이디별 설정 정보를 확인.

  • 브로커의 성능 테스트할 수 있는 방법은?

kafka-producer-perf-tes.sh, kafka-consumer-perf-test.sh 를 이용해 성능 테스트 가능.

  • 카프카의 관리 도구는?

→ Admin API를 이용하는 것이 일반적이나 kafkacat 란 도구도 있음. 이는 JVM이 필요치 않음.

https://github.com/edenhill/kcat

Admin (kafka 3.2.3 API)

  • 카프카에서 보안 설정하는 방법은?

→ 커버로스 서버나 SCRAM 설정하는 방법도 있음.

  • 카프카에서 보안을 적용하면 성능이 떨어지는가?

→ 성능 저하될 수 있음. 특히 SSL 적용시 성능 저하가 높을 것임. 따라서 SASL_PLAINTEXT 방식 사용 추천. 외부에서 내부 네트워크의 카프카를 직접 연동해야 할 경우 보안을 중시해야 하므로 다소 성능 저하가 있더라도 SASL_SSL 방식 사용 추천.

카프카 도입 사례에 대한 설명이 필요하신 분은 여기 링크를 참고바랍니다.

좀더 자세한 설명을 원하시는 분은 실전 카프카 개발부터 운영까지 도서를 참고바립니다.


참고 : 실전 카프카 개발부터 운영까지

아래는 카프카 관련 국내 도서입니다.

실전 카프카 개발부터 운영까지:데이터플랫폼의 중추 아파치 카프카의 내부동작과 개발 운영 보안의 모든것, 책만 아파치 카프카의 모든 것 세트 : 카프카 데이터 플랫폼의 최강자+실전 카프카 개발부터 운영까지, 책만 (서점추천) 헤드 퍼스트 디자인 패턴 + 실전 카프카 개발부터 운영까지 (전2권) (서점추천) 24단계 실습으로 정복하는 쿠버네티스 + 실전 카프카 개발부터 운영까지 (전2권), 위키북스 (서점추천) 데이터 파이프라인 핵심 가이드 + 실전 카프카 개발부터 운영까지 (전2권) (서점추천) 몽고DB 완벽 가이드 + 실전 카프카 개발부터 운영까지 (전2권) (서점추천) 클린 코드의 기술 + 실전 카프카 개발부터 운영까지 (전2권), 영진닷컴 (서점추천) 카프카 핵심 가이드 + 디지털 플랫폼 전략 수립을 위한 쿠버네티스 실전 활용서 (전2권), 제이펍 아파치 카프카 애플리케이션 프로그래밍 with 자바:카프카의 개념부터 스트림즈 커넥트 스프링 카프카까지, 비제이퍼블릭 카프카 핵심 가이드 개정증보판, 제이펍 실전 아파치 카프카:애플리케이션 개발부터 파이프라인 사물인터넷 데이터 허브 구축까지, 한빛미디어 카프카 데이터 플랫폼의 최강자:실시간 비동기 스트리밍 솔루션 Kafka의 기본부터 확장 응용까지, 책만 카프카 스트림즈와 ksqlDB 정복:실시간 데이터 처리, 에이콘출판 카프카 핵심가이드:실시간 데이터와 스트림 프로세싱, 제이펍

“이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.”

Back to top