Sinbum's blog
  • 인셉션 개발자
    • History
    • Editorial Board
    • 세미나
      • MS_빅데이터_분석_교육
      • Databricks_Musinsa_사례분석
      • Databricks_AMOREPACIFIC_사례분석
    • 개발자 꿀팁
  • 리눅스
    • 리눅스 기초
      • 기본명령어
      • 프록시서버
      • 온프레미스
      • systemd
      • 우분투 앱
      • vi 사용법
    • 도커
      • MSA 아키텍처
      • 도커 설명
      • 도커 설치
      • 도커 가이드
        • 컨테이너 만들기
        • 컨테이너 보관
        • 컨테이너 사용
        • 컨테이너 관리
        • 컨테이너 볼륨
        • 컨테이너 통신
        • 도커 연습
  • 언어
    • 자바
      • 자바(JAVA)는 무엇인가?
        • JVM 메모리
      • 자바 설치 가이드
      • 자바 언어 활용
        • 변수
        • static
        • 상수
        • 연산자
        • 제어문
        • 배열
        • CLI-자바사용
        • 클래스
        • 메소드
        • 값에의한 호출
        • GUI 프레임
        • 생성자
        • 오버로딩
        • 상속
        • 상속생성자
        • 접근제한자 와 가비지 컬렉션
        • 추상클래스 와 인터페이스
        • 다중구현
        • 예외처리
        • 컬렉션 프레임워크
        • 쓰레드
        • 네트워크
        • 다중 접속 서버 구현
      • 간단한 채팅 앱 개발하기
    • 파이썬
      • 파이썬(Python)은 무엇인가?
      • 파이썬 설치 가이드
      • 파이썬 언어 활용
        • 변수
        • 입력,출력
        • 타입선언
        • 자료구조
        • 주석처리
        • 문자열
        • 리스트
        • 반복문
        • 연산자
        • 조건문
        • 정규표현식
          • re 모듈
          • 메타문자1
          • 메타문자2
          • 그루핑
          • 전방탐색
          • 문자열 바꾸기
          • Greedy 와 Non-Greedy
      • 마치며...
  • 형상관리,CI/CD
    • 깃허브
      • 깃허브 협업 모델
      • 깃허브 설치 와 ssl
      • 깃허브를 잘쓰는 팁 모음
  • BigData
    • BigData 개념
      • OLTP,OLAP
      • ELT,ETL
      • DW
      • ObjectStorage
      • LambdaArc
      • OGG
    • Kafka
      • 환경설정 및 소스코드 다운로드
      • 아파치 카프카는?
        • 카프카의 시작
        • 카프카 특성
        • 빅데이터 아키텍처
      • 카프카 기초 개념
    • BuildApplications
      • Airflow
      • Grafana
    • PowerBi
      • DAX
        • REMOVEFILTERS
        • DAX_문법
        • DAX_함수
    • Azure
      • SynapseAnalytics
  • IOT
    • 아두이노
      • 설치 및 기초
      • 센서의 종류
      • led 출력하기
      • 시리얼 통신
      • 무선 통신
  • About
    • SINBUM
    • INTEREST
    • PROJECTS
      • 업무 프로젝트
      • 개인 프로젝트
        • 티스토리API를 사용한 블로그 앱
        • 노션 API와 블로그 연동 자동화 하기
        • 로지텍 마우스 수리
    • CONTACT
Powered by GitBook
On this page
  1. BigData
  2. Kafka
  3. 아파치 카프카는?

카프카의 시작

Previous아파치 카프카는?Next카프카 특성

Last updated 2 years ago


링크드인

2011년 구인/구직 플랫폼 이자 소셜 네트워크인 'Linkedin'은 여러 파편화되어있는 데이터 수집 분배 아키텍처를 운영하는 것에 어려움이 있었습니다. 시간이 지날수록 아키텍처는 거대해졌고 소스 애플리케이션과 타깃 애플리케이션의 개수가 점점 많아지면서 데이터의 흐름이 복잡해지기 시작했습니다.

복잡한 운영구성 : 아파치 카프카 애플리케이션 프로그래밍|최원영

위 그림과 마찬가지로 링크드인 데이터 팀에서는 기존에 있던 사용프레임워크와 오픈소스를 아키텍처에 반영해 데이터 파이프라인의 파편화를 개선하려 노력하였습니다. 그러나 복잡도를 낮추는 아키텍처가 되지는 않았습니다.

다음 그림의 예시를 살펴보도록 하겠습니다.

링크드의 데이터팀은 그러한 고민끝에 위 그림과 같이 아키텍처를 구성할 수 있도록 플랫폼 형태의 어플리케이션을 개발 하였습니다.

카프카는 각각의 애플리케이션 끼리 연결해 데이터를 처리하는 것이 아니라 모든것을 한곳에 모아 처리할 수 있도록 중앙집중화 되었습니다.

기존의 1:1 매칭과는 다르게 데이터 소스는 카프카 내부에 파티션이라는 개념에 저장됩니다. 카프카 내부에 데이터가 저장되는 파티션의 동작은 FIFO 방식으로 적용됩니다.

그림에서 프로듀서로 보이는 것은 데이터가 토픽이라는 공간에 데이터가 들어갈 수있도록 제공하는 역할을 합니다.

컨슈머는 들어간 데이터에서 가져오는 역할을 합니다.

카프카를 사용한 통합 구성 : 아파치 카프카 애플리케이션 프로그래밍|최원영
카프카 내부구조 : 아파치 카프카 애플리케이션 프로그래밍|최원영