[카프카 핵심 가이드] Chapter 12. 카프카 운영하기

Falco·2024년 1월 21일
0

카프카 핵심 가이드

목록 보기
11/11
post-thumbnail

카프카 운영하기

카프카 클러스터를 운영하기 위해서는 토픽이나 설정 등을 변경하기 위한 추가적인 툴이 필요하다. 카프카는 홈페이지에서 제공하는 CLI 인터페이스를 제공하며 이를 활용해 몇몇 설정을 바꿀 수 있다.

카프카 홈페이지에서는 shell형식으로 카프카를 운영할 수 있도록 예제 스크립트를 제공한다.

쉘을 통한 카프카 작업

토픽 작업

kafka-topcis.sh 툴은 대부분의 토픽 작업을 쉽게 할 수 있다. 토픽 변경 및 생성, 삭제 그리고 정보 조회를 할 수 있다.

sh kafka-topics.sh
Create, delete, describe, or change a topic.
Option                                   Description
------                                   -----------

...

--config <String: name=value>            A topic configuration override for the
                                           topic being created or altered. The
                                           following is a list of valid
                                           configurations:
                                         	cleanup.policy
                                         	compression.type
                                         	delete.retention.ms
                                         	file.delete.delay.ms
                                         	flush.messages
                                         	flush.ms
--create                                 Create a new topic.
--delete                                 Delete a topic
--delete-config <String: name>           A topic configuration override to be
                                           removed for an existing topic (see
                                           the list of configurations under the
                                           --config option). Not supported with
                                           the --bootstrap-server option.
--describe                               List details for the 

...

--help를 통해 상세한 정보를 볼 수 있음으로 책에서 제공하는 토픽 생성 및 삭제, 조회등의 자세한 설명은 패스

할 수 있는 것예는 다음과 같다.

  • 토픽 생성하기
  • 토픽 목록 조회하기
  • 토픽 상세 내역 조회하기
    • 리더가 없는 파티션 수
    • 인 싱크 레플리카 최소값
    • 리더와 동기화 되지 않은 파티션
    • 카프카 랙 및 인덱스
  • 파티션 추가하기 및 개수 줄이기
  • 토픽 삭제하기

컨슈머 그룹

컨슈머 그룹에 대한 작업도 가능하다. 아래는 할 수 있는 것 목록이다.

  • 컨슈머 그룹 목록 상세 조회 하기
    • 클라이언트 아이디, 그룹아이디, 오프셋, 그룹 등
  • 컨슈머 그룹 삭제하기
  • 오프셋 내보내기
  • 오프셋 가져오기

동적 설정 변경

카프카의 동적으로 변경할 수 있는 설정등이 몇개 있다.

  • cleanup.policy : 토픽 지우는 정책
  • compression.type : 압축 코덱
  • delete.retention.ms : 삭제된 메시지 보존 기간
  • file.delete.delay.ms : 로그 세그먼트 파일 및 인덱스 보존 기간
  • flush.messages : 토픽 메시지를 디스크로 쓰기 전에 수신할 메시지 개수
  • flush.ms : 토픽 메시지를 디스크로 쓰기 전에 기다리는 시간
  • followers.replication.throttled.replicas : 팔로워에 의해 복제 작업에 쓰로틀이 걸러야할 레플리카 목록

등등.. 여러가지가 있지만 중요한 건 아래있는 것들이다.

  • min.insync.replicas : acks 설정 값이 all일 때 쓰기가 이루어져야하는 레플리카 총 개수
  • unclean.leader.election.enable : 언클린 리더 선출 여부(복제가 완전하지 않은 레플리카 리더 선별)
  • max.connections : 브로커에 연결할 수 있는 최대 연결 수

kafka-configs.sh쉘을 통해 해당 설정등을 조회 및 수정 가능하다.

쓰기 및 읽기 작업

카프카 토픽을 다루기위해 수동으로 메시지를 쓰거나 읽을 수 있다.

  • 메시지 쓰기
  • 메시지 읽기

파티션 관리

파티션 관리를 할 수도 있다.

  • 선호 레플리카 선출
  • 파티션 레플리카 변경
  • 복제 팩터 변경하기
  • 레플리카 재할당 취소하기
  • 로그 세그먼트 덤프 뜨기

등 다양한 쉘 스크립트 파일을 제공한다.

요약

카프카를 운영하는 것은 복잡하고 어려운 일이다. 이러한 일을 하기 위해 동적 설정 변경 및 토픽관리 등의 작업을 부단하게 해주어야한다. 카프카는 이러한 유지보수를 위해 쉘스크립트를 제공한다.

profile
강단있는 개발자가 되기위하여

0개의 댓글