Apache Kafka - 1

kkmdevel·2024년 5월 14일
0

kafka

목록 보기
1/10
post-thumbnail

- Kafka?

실시간으로 기록 스트림을 게시, 구독, 저장 및 처리할 수 있는 분산형 데이터 스트리밍 플랫폼

Pub-Sub 모델의 메시지 큐 형태로 동작하며 분산환경에 특화

LinkedIn에서 사용중인 End-To-End 모델의 단점을 해결하고자 탄생

                                  End-To-End   --->  kafka
  • 기존 시스템의 단점
    시스템 복잡도가 증가 -> 데이터 관리 어려워짐
    장애 발생 시 처리 속도 증가
    서비스 확장 시 비용 증가

  • kafka 사용
    모든 데이터와 데이터들의 흐름을 중앙에서 관리
    장애를 유연하게 처리 가능하고, 서비스 확장 시 용이


- kafka Model

  • Pub/Sub 모델
    Publish/Subscribe 의 줄임말로 메시지 기반 미들웨어 시스템을 의미
    이벤트(메시지)를 발행하는 Publisher는 특정 Channel(Topic)에 이벤트를 전송
    Channel(Topic)을 구독하는 Subscriber 에 의해 처리

  • Message Queue
    메시지 지향 미들웨어(MOM : Message Oriented Middleware)를 구현한 시스템 프로그램
    (프로세스) 간의 데이터를 교환할 때 사용하는 기술

  • 장점

    1. 비동기: queue라는 임시 저장소가 있기 때문에 나중에 처리 가능

    2. 낮은 결합도: 애플리케이션과 분리

    3. 확장성: producer or consumer 서비스를 원하는대로 확장 가능

    4. 탄력성: consumer 서비스가 다운되더라도 애플리케이션이 중단되는 것은

      아니며 메시지는 지속하여 MQ에 존재

    5. 보장성: MQ에 들어간다면 결국 모든 메시지가 consumer 서비스에게 전달된다는 보장


- kafka 구성요소

  • 구성도

  • 요소

    1. Zookeeper
      Kafka 의 클러스터 메타데이터와 상태 정보를 저장하고 관리하는 분산 코디네이터 시스템

    2. Broker
      Kafka 클러스터를 구성하는 개별 서버 노드로, 메시지 수신, 저장, 분배 등의
      역할을 수행하는 Kafka 서버

    3. Topic
      Kafka 에서 데이터를 주고받는 주제를 나타내는 단위로 관련된 메시지들이 그룹화되는
      카테고리 또는 피드

    4. Partition
      Kafka Topic 을 분할하여 여러 파티션으로 나누는 것으로,
      각 파티션은 순서가 있는 메시지 스트림을 포함하며 별도의 오프셋을 보유

    5. Offset
      Kafka Topic 내에서 메시지의 위치를 식별하는 고유한 식별자로,
      Consumer가 읽은 메시지의 위치를 추적하고 관리하는데 사용

    6. Producer
      Kafka 에 데이터를 생성하여 특정 Topic 으로 보내는 역할을 하는 애플리케이션 또는 컴포넌트

    7. Consumer
      Kafka 로부터 데이터를 소비하는 역할을 하는 애플리케이션 또는 컴포넌트로,
      Topic 의 메시지를 읽고 처리, Consumer Group 에 속할 수 있으며, 메시지를 병렬로 처리 가능

profile
25/08/12

0개의 댓글