[카프카]카프카 브로커·클러스터·주키퍼

박상준·2024년 4월 3일
0

Kafka

목록 보기
1/4

카프카 브로커·클러스터·주키퍼

카프카 브로커

  • 정의
    • 카프카 클라이언트와 데이터를 주고받기 위해 사용하는 주체
    • 데이터를 분산 저장하여 장애가 발생해도 안전하게 사용할 수 있음
  • 실행 단위
    • 하나의 서버에는 한개의 카프카 브로커 프로세스가 실행된다
  • 기능
    • 단일 브로커로도 구성이 가능하지만,
    • 보통 REDIS Sentienl 같이 데이터의 안전한 보관과 처리를 위해 여러 대의 브로커 서버를 클러스터로 묶어 운영하는 것이 일반적이다.

카프카 클러스터

  • 정의
    • 3대 이상의 브로커 서버로 구성된 클러스터를 통해 데이터를 안전한 분산 저장과 복제를 수행함
  • 역할
    • 프로듀서로부터 받은 데이터 안전하게 분산 저장
    • 컨슈머가 데이터를 요청하는 경우 해당 데이터 전달

주키퍼 앙상블

카프카 클러스터의 메타데이터 관리, 클러스터 내 브로커들의 상태 관리, 리더 선출 등의 역할을 수행

왜 카프카를 사용해야하는가? (성능 관점)

  1. 고처리량

    • 카프카는 분산 시스템으로 기본적으로 설계되어있다.
    • 수 천 개의 노드로 확장이 가능하다.
      • 원하면 노드를 늘려서 엄청난 량의 데이터를 병렬적으로 처리할 수 있다.
  2. 빠른 데이터

    • 실시간성을 유지하면서, 데이터를 배치로 처리하여 네트워크 요청의 오버헤드를 줄이고 ,데이터의 전송 속도를 높을 수 있다.

    어떤 식으로 배치 처리를 하는 걸까?

    1. 카프카의 프로듀서가 메시지를 생성 & 카프카 브로커에 전송하는 역할
    2. 프로듀서는 메시지를 바로 전송하는 대신, 메모리 버퍼에 일정량의 메시지를 모은다.
    3. 해당 버퍼가 설정된 크기에 도달하거나, 설정된 시간이 경과하는 경우. 프로듀서는 이 메시지들을 하나의 큰 배치로 묶어 카프카 브로커에 전송한다.
    4. 브로커는 배치를 받아 디스크에 저장, 컨슈머(Consumer) 가 데이터를 요청할 때 이를 전달한다.
    5. 컨슈머 역시 배치로 데이터를 받아 처리함
  3. 실시간 스트리밍

    • 실시간 데이터 스트리밍을 지원한다, 데이터가 생성되는 즉시 처리할 수 있음.
  4. 다중 컨슈머

    • 여러 컨슈머가 동일한 데이터 스트림을 동시에 읽을 수 있도록 지원한다.
    • 이는 데이터를 다양한 시스템과 어플리케이션에서 활용할 수 있도록 해준다.

    왜 다중 컨슈머를 구성하는거임?

    1. 부하 분산
      • 다중 컨슈머를 통해 메시지 처리 부하를 균등하게 분산시킨다.
      • 각 컨슈머가 최적의 성능으로 작동하게 하는데, 전체 시스템의 부하를 관리하는 데 도움이 된다.
    2. 메시지 처리 속도 증대
      • 동시에 여러 메시징 처리가 가능하기에 전체적인 메시지 처리 속도가 향상됨.
    3. 유연성
      • 다양한 컨슈머 그룹을 설정, 각 컨슈머 그룹이 다른 목적으로 메시지를 처리하도록 할 수 있음.
        • 하나는 실시간 모니터링
        • 하나는 데이터 분석 ..등
profile
이전 블로그 : https://oth3410.tistory.com/

0개의 댓글