본문 바로가기
빅데이터/kafka

[Kafka] 카프카 운영시 주의 사항 스크랩

by hs_seo 2020. 6. 3.
  • KAFKA에 대해서 알아보자
    • 카카오는 각 서버가 시스템 적으로 묶여 있어서 장애가 발생하면 동시에 다운되어 카프카를 이용하여 커플링을 줄여줌.
    • 파티션은 8~20개로 설정하고 처리 속도에 따라 적절하게 설정하는 것이 중요함
  • Kafka 기본 개념잡기
  • Kafka 운영자가 말하는 처음 접하는 Kafka
    • 파티션 순서에 따른 메시지 순서: 파티션의 개수가 여러개 일때 메시지는 파티션의 여러 위치에 저장되어 구독자가 메시지를 가져올 때 메시지의 발생 순서와 구독자가 받은 메시지의 순서가 꼭 일치하지는 않음.
    • 메시지 처리 순서가 중요한 서비스는 Kafka를 이용하지 않는 것이 좋을 것 같고, 이용해야 한다면 파티션을 1개로 설정하던지 다른 방법을 통해 메시지의 순서를 정렬할 수 있는 방법을 찾아야 함
  • Kafka 운영자가 말하는 Kafka Consumer Group
    • 구독자 그룹(Consumer Group): 장애 복구성을 가질 수 있고, 분산 처리를 통해 빠른 메시지 처리가 가능함
  • 카프카 설치 시 가장 중요한 설정 4가지
    • log.retention.hours=72
      • 브로커에 로그 유지 시간. 데이터가 많아지면 복제에 의해 많은 용량이 필요할 수 있음. 적절한 시간 설정이 필요함.
    • delete.topic.enable=true
      • 디스크 용량 확보를 위해 토픽을 삭제할 수 있도록 설정해야 함. 이 옵션을 설정하지 않으면 바로 삭제 되지 않고, 삭제 플래그에 체크만 됨
    • allow.auto.create.topics=false
      • 선언하지 않은 토픽으로 메시지가 들어 올때 토픽을 자동으로 생성하지 않도록 설정.
    • log.dirs=/data
      • 메시지가 저장되는 실제 경로를 정확하게 설정해야 함.
      • 용량이 충분한 디스크를 설정하여 디스크 풀(Full)이 발생하지 않도록 잘 관리 해야 함
  • LINE에서 Kafka를 사용하는 방법 - 1편
    • 분산 큐잉 시스템과 데이터 허브로 이용
    • 하나의 클러스터에 데이터를 집중하여 데이터 허브 컨셉으로 아키텍처를 단순하게 유지할 수 있고, 운영의 효율성을 얻을 수 있음
    • 대량의 데이터를 처리하면서 높은 신뢰성을 확보
      • 요청수를 제어. 안정성 확보를 위해 데이터의 양보다 요청수(request quota)를 제어 하는 것이 중요함
        • 브로커의 스레드 시간을 제어하여 하나의 토픽으로 메시지가 몰려도 다른 작업에 영향이 가지 않게 함
        • 한번에 처리할 수 있는 데이터양을 제어하여 다른 작업에 영향이 가지 않도록 설정해야 함
반응형