카프카 설치 시 가장 중요한 설정 4가지

카프카 보안과 커버로스(Kerberos)를 이용해 구성하는 방법에 대해 다루는 글을 쓰려다가, 현재 제가 구성한 보안 클러스터 구성환경에 접속할 수도 없고 새로 구성하기도 어려운 상황이라, 평소 주위 분들에게 많은 질문을 받은 “빠르게 카프카 사용하기”라는 주제로 먼저 글을 써봐야겠다는 생각이 들었습니다. 이 내용은 생각보다는 매우 단순하고 쉽습니다. 이 글이 필요한 분들은 다음과 같습니다.

  • 카프카를 빨리 구성해야 한다.
  • 카프카를 빨리 업무에 사용해야 한다.
  • 카프카를 공부할 시간은 없다.
  • 카프카를 공부하고 싶지도 않다.
  • 그냥 안정적으로 빨리 잘 사용하고 싶다.

이 대상에서 해당되지 않고 카프카를 이미 잘 쓰고 있는 분들은 굳이 이 글을 읽지 않으셔도 됩니다. :)

 

개요

 

빠르게 카프카를 구성해서 장애 없이 잘 사용하고 싶은데, 그렇다고 카프카를 모두 공부해서 사용할 시간은 부족합니다. 이런 경우 대부분이 일단 카프카에서 제공되는 기본값으로만 설정해서 사용하게 됩니다. 기본값만으로 설정해 쓰더라도 당장에는 아무런 문제가 일어나지 않습니다. 하지만 일정 기간 사용하다 보면 문제가 발생하기 시작합니다. 카프카에 한번 문제가 발생하게 되면, 잘 알지 못하는 상태로 구성했기 때문에 그 문제를 해결하기가 쉽지 않습니다.

제가 공저한 책 <카프카, 데이터 플랫폼의 최강자> 6장 ‘카프카 운영 가이드’를 보시면 6.6 ‘카프카 운영에 대한 Q&A’라는 절에서 카프카의 문제가 발생했을 때의 대응 방안에 대해 FAQ 형식으로 설명한 내용을 찾을 수 있습니다. 카프카의 기본 옵션 중 일부만 미리 변경하여 사용한다면, 운영하시는 카프카를 보다 안정적이고 손쉽게 카프카를 사용할 수 있습니다. 자 그럼 지금부터 시작하겠습니다.

 

기본옵션

 

log.retention.hours=72

retention 옵션은 예전부터 많이 강조했는데, 여전히 기본값으로 많이들 사용하십니다. 이렇게 설정하면 결국 디스크가 full 나서 대응이 되지 않는 경우가 많아, 이에 대한 문의도 많이 받았습니다. 만약 이 옵션만 조금 조정했다면 디스크가 full 되는 경우는 발생하지 않을 것 같습니다.

해당 옵션은 카프카에서 토픽으로 저장되는 모든 메시지를 해당 시간만큼 보관한다는 의미입니다. 기본값이 168시간으로 7일을 의미합니다. 예제를 위해 계산하기 쉽게 메시지 하나가 1KB라고 가정하고 10,000/sec의 메시지가 카프카로 유입된다고 가정하겠습니다. 여기에 총 7일을 보관한다고 계산해보겠습니다.

1KB(메시지 사이즈) * 10,000(초당 메시지 수) * 60(1분) * 60(1시간) * 24(1일) * 7(일)입니다. 이게 끝이 아닙니다. 만약 리플리카 3으로 되어 있다면 *3입니다. 게다가 이런 토픽이 하나가 아니라 10개만 되어도 *10입니다. 계산을 해보니 약 168TB라는 숫자가 나오게 됩니다. 어마어마하죠? 하지만 retetion 옵션을 7일이 아닌 3일로 변경했다면, 72TB의 공간만 있으면 됩니다. 필요로 하는 디스크 공간을 많이 줄일 수 있습니다. 대부분 많은 분들이 카프카에 있는 메시지를 실시간으로 가져가고 있기 때문에 7일이나 보관한다는 것이 반드시 필요한 옵션이라고는 생각하지 않습니다. 저는 개인적으로 주말 장애 등을 고려해 3일로 변경하는 것을 추천드리니, 카프카를 사용하시기 전에 해당 옵션에 대해 한번 고민해보시고, 적당하게 줄여서 사용하시기를 권장드립니다.

delete.topic.enable=true

이 옵션은 카프카의 토픽 삭제와 관련된 옵션입니다. 만약 허용하지 않는다면 삭제를 하더라도 삭제되지 않고 삭제 표시만 남아 있게 됩니다. 만약 위의 경우처럼 디스크가 가득 차서 빠르게 토픽을 삭제한다는 생각이 들었는데, 해당 옵션이 적용되어있지 않다면 토픽을 삭제할 수 없는 상황이 발생합니다. 진퇴양난이죠. 그래서 해당 옵션을 확인해 토픽을 삭제할 수 있도록 변경하는 것을 추천드립니다. 내가 필요할 때 언제든 토픽을 삭제할 수 있도록 말입니다.

경축! 아무것도 안하여 에스천사게임즈가 새로운 모습으로 재오픈 하였습니다.
어린이용이며, 설치가 필요없는 브라우저 게임입니다.
https://s1004games.com

allow.auto.create.topics=false

해당 옵션은 토픽 자동생성과 관련된 옵션입니다. 예를 들어 peter-topic 토픽으로 메시지를 보내려고 합니다. 토픽을 미리 만들어 두어야 하는데, 만약 관리자가 실수로 카프카에 미리 토픽을 생성하지 않은 상태라면 어떻게 될까요? 해당 옵션이 적용되어 있는 상태에서는 토픽이 미리 생성되어 있지 않더라도 프로듀서가 peter-topic으로 메시지를 보내면 자동으로 peter-topic을 생성하게 하는 설정입니다. 경우에 따라서는 매우 좋기도 하지만, 매우 좋지 않기도 합니다. 분명 필요하지 않은 토픽이라 생각해서 지웠는데, 자꾸 토픽이 생겨나기도 하고, 관리자가 알지 못하는 토픽이 자동으로 막 생겨나기도 합니다. 게다가 토픽의 replication factor 역시 기본값이 1입니다. 결국 이 옵션으로 생성되는 토픽들은 rf1로 설정되어 나중에 문제가 되는 경우를 몇 번 경험했습니다. 이 옵션은 false로 사용하시기를 권장합니다.

log.dirs=/data

해당 옵션은 각 토픽들의 메시지들이 저장되는 실제 경로입니다. 최근 서버들을 보면 OS 영역은 용량이 적은 정도의 디스크로 사용하고 데이터 디렉터리를 별도의 용량이 큰 디스크를 사용하기도 합니다. 하지만 이 옵션을 통해 용량이 큰 별도의 디스크 경로로 설정해주지 않는다면, 기본값이 /tmp/kafka-logs으로 설정되어 있어 OS 영역의 디스크를 사용하게 되고, 결국 용량이 가득 차는 경우가 발생할 수 있습니다. 해당 옵션을 확인하여 미리 설정한다면 이러한 장애 상황을 미리 방지할 수 있을 것입니다.

 

 

마무리

 

카프카를 급하게 도입해야 하고, 카프카를 단순 툴로서 신속하게 사용해야 하는 분들은 제가 지금까지 설명한 4가지의 옵션 정도만 변경해서 사용하시더라도 상당히 안정적으로 사용하실 수 있을 것 같습니다. 물론 고급 기능이나 안정적인 상태로 사용하려면 고려해야 할 상황이 많겠지만 이 글은 퀵패스를 원하는 분들을 위해 작성한 것이니 부족한 부분이 있더라도 이점 참고 부탁드립니다.

“오늘의 교훈: 카프카를 오직 기본값만으로는 사용하지 마세요!!”

 
[출처] https://www.popit.kr/%EC%B9%B4%ED%94%84%EC%B9%B4-%EC%84%A4%EC%B9%98-%EC%8B%9C-%EA%B0%80%EC%9E%A5-%EC%A4%91%EC%9A%94%ED%95%9C-%EC%84%A4%EC%A0%95-4%EA%B0%80%EC%A7%80/

 

 

 

 

본 웹사이트는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
번호 제목 글쓴이 날짜 조회 수
공지 오라클 기본 샘플 데이터베이스 졸리운_곰 2014.01.02 25085
공지 [SQL컨셉] 서적 "SQL컨셉"의 샘플 데이타 베이스 SAMPLE DATABASE of ORACLE 가을의 곰을... 2013.02.10 24564
공지 [G_SQL] Sample Database 가을의 곰을... 2012.05.20 25943
965 [MySQL] 관리자 root , admin 계정 추가 : MySQL 관리자 계정 추가 졸리운_곰 2021.09.26 69
964 [MySQL] mysql 에서 컬럼과 로우 바꾸기, 행과 열 바꾸기 How to Transpose Rows to Columns Dynamically in MySQL file 졸리운_곰 2021.09.13 27
963 [Oracle] rollup 쿼리 , 오라클 부분합 구하기 file 졸리운_곰 2021.09.01 216
962 [MySQL] MySQL ROLLUP , summary, 부분합 구하기 file 졸리운_곰 2021.09.01 30
961 [python][tensorflow - gpu] [파이썬] 텐서플로(TensorFlow) 설치하는 방법, 딥러닝 환경 구축하기 file 졸리운_곰 2021.08.17 46
960 [tensorflow 설치] windows에서 tensorflow-gpu 1.x 버전 설치, python - 이전 버전의 Tensorflow GPU 설치 졸리운_곰 2021.08.17 20
959 [한글 처리][tensorflow] 한글 자연어처리를 위한 도구들, 자료들, 정보들을 정리해 보았습니다. 졸리운_곰 2021.08.11 84
» 카프카 설치 시 가장 중요한 설정 4가지 졸리운_곰 2021.07.13 46
957 [데이터분석][파이썬][python] Awesome Dash Awesome file 졸리운_곰 2021.07.10 49
956 [데이터분석][파이썬][python] ???? Introducing Dash ???? file 졸리운_곰 2021.07.10 111
955 [딥러닝] [텐서플로우][SSAC X AIFFEL] 작사가 인공지능 만들기 file 졸리운_곰 2021.07.10 45
954 [Kafka] Kafka 한번 살펴보자... Quickstart file 졸리운_곰 2021.06.18 27
953 Java Kafka Producer, Consumer 예제 구현 Java를 이용하여 Kafka Producer와 Kakfa Consumer를 구현해보자. file 졸리운_곰 2021.06.18 105
952 Beginner’s Guide to Understand Kafka file 졸리운_곰 2021.06.18 23
951 [Kafka] Kafka 설치/실행 및 테스트 file 졸리운_곰 2021.06.18 36
950 [java] [kafka] [Kafka] 개념 및 기본예제 file 졸리운_곰 2021.06.16 115
949 [Oracle, 오라클 dbms] [ORACLE] 오라클 테이블 & 컬럼 조회 하는 방법 졸리운_곰 2021.05.17 90
948 [dataset] (한글) 욕설 감지 데이터셋 file 졸리운_곰 2021.05.12 202
947 [java dbms][database] [컴] Apache Derby 사용하기 - 4 - in-memory DB 졸리운_곰 2021.04.15 76
946 [java dbms][database] [컴] Apache Derby 사용하기 - 3 - Apache Derby Network Server 졸리운_곰 2021.04.15 17
대표 김성준 주소 : 경기 용인 분당수지 U타워 등록번호 : 142-07-27414
통신판매업 신고 : 제2012-용인수지-0185호 출판업 신고 : 수지구청 제 123호 개인정보보호최고책임자 : 김성준 sjkim70@stechstar.com
대표전화 : 010-4589-2193 [fax] 02-6280-1294 COPYRIGHT(C) stechstar.com ALL RIGHTS RESERVED