[Kafka] Apache Kafka

zhzkzhffk·2022년 7월 9일
0

Kafka

목록 보기
1/4
post-thumbnail

Apache Kafka 개요

Apache Software Foundation의 Scalar 언어로 된 오픈 소스 메시지 브로커 프로젝트

  • Open Source Message Broker Project

메시지 브로커 : 특정한 리소스에서 다른 쪽의 리소스 또는 서비스 시스템으로 메시지를 전달하는 사용되는 서버

  • 메시지: text, json, xml, Object 데이터 포맷

실시간 데이터 피드를 관리하기 위해 통일된 높은 처리량, 낮은 지연 시간을 지닌 플랫폼 제공

  • End-to-End 연결 방식의 아키텍처 -> 데이터 연동의 복잡성 증가(HW, 운영체제의 특성, 장애...등)
  • 서로 다른 데이터 Piplline 연결 구조
  • 확장이 어려운 구조

서로 다른 format을 쓰고 있기에 확장이 어렵다.
Kafka는 모든 시스템으로 데이터를 실시간으로 전송하여 처리 할 수 있는 시스템이자, 데이터가 많아지더라도 확징이 용이한 환경으로 바꿔준다.

  • 중간에 Kafka 메시지 브로커를 통해 자신들이 저장하는 방식(포맷)을 생각하지 않고, kafka 하나를 상대하는 것으로 통일화한다. 즉 누가 보내고 누가 받는지 신경을 안써도 되는 방식으로
  • Producer/ Consumer를 분리
  • Scale-out 가능하며 Eco-system이다.

Kafka Broker

실행 된 Kafka 애플리케이션 서버( == kafka broker)
3대 이상의 Broker Cluster 구성을 권장한다. -> 메시지를 공유하여 하나의 브로커가 이상이 생겼을 때 안정적으로 메시지를 전달할 수 있다.

Zookeeper

  • 역할: 메타데이터 (Broker ID, Controller ID등) 저장
  • Controller 정보 저장

n개의 Broker 중 1대는 Controller 기능을 수행한다

  • Controller 역할은 각 Broker에 담당 파티션 할당 역할을 수행한다. 또한 정상적으로 동작하는지 Broker를 모니터링한다.

Kafka 설치

카프카 공식 홈페이지 → kafka 다운로드란에서 다운로드

Kafka Clinet

출처

Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)

profile
Backend Developer

0개의 댓글