카프카 스트림즈

2023. 3. 30. 15:11·대외활동/카엔프 SW 아카데미
반응형

카프카 스트림즈란?

  • 카프카 스트림즈는 토픽에 적재된 데이터를 상태기반 또는 비상태기반으로 실시간 변환하여 다른 토픽에 적재하는 자바 라이브러리다.
  • 스트림즈는 카프카에서 공식적으로 지원하는 라이브러리다.
  • 자바 기반 스트림즈 애플리케이션은 카프카 클러스터와 완벽하게 호환되면서 스트림 처리에 필요한 편리한 기능들(신규 토픽 생성, 상태 저장, 데이터 조인 등)을 제공한다.

비상태 기반 처리

  • 필터링이나 데이터를 변환하는 처리다.
  • 데이터가 들어오는 즉시 처리하고 바로 프로듀스한다. 따라서 유실이나 중복이 발생할 염려가 적고 개발이 쉽다.

상태 기반 처리

  • 상태 기반 처리는 직접 구현이 너무 어렵다.
  • 윈도우, 조인, 취합과 같은 처리는 이전 받았던 데이터를 프로세스가 메모리에 저장하고 있으면서 다음 데이터를 참조해 처리해야하기 때문이다.
  • 이런 상태기반 분산 프로세스는 매우 난이도가 있는 작업이다.
  • 이런 어려움을 극복하게 도와주는 것이 스트림즈다. 

카프카 스트림즈 장점

  1. 데이터 유실과 중복처리 되지 않고 딱 1번만 처리 되는 것을 보장한다.
  2. 스케줄링 도구가 필요 없다.
  3. 스트림즈 DSL과 프로세서 API를 제공해 스트림을 처리한다.
    • 스트림즈 DSL이 제공하는 이벤트 기반 메서드를 사용하면 쉽게 구현할 수 있다.
  4. 로컬 상태 저장소를 사용한다.
    • 앞에서 상태 기반 처리를 스트림즈가 도와준다고 했다.
    • 로컬에 rocksdb를 사용해 상태를 저장하고 이 상태에 대한 변환 정보는 카프카의 변경 로그 토픽에 저장한다.
    • 그래서 스트림즈를 사용하면 프로세스에 장애가 발생하더라도 그 상태가 모두 안전하게 저장되기 때문에 자연스럽게 장애가 복구될 수 있다.

참고자료

아파치 카프카 애플리케이션 프로그래밍 with 자바

https://www.youtube.com/watch?v=vKxhPUUEDmM&t=20s 

 

 

반응형
'대외활동/카엔프 SW 아카데미' 카테고리의 다른 글
  • nGrinder 설치하기
  • 카프카 커넥트란?
  • 카프카 기초
Debin
Debin
공부 기록을 남기며 게시글 리팩토링을 진행하는 블로그입니다.
  • Debin
    리팩토링하는 블로그
    Debin
  • 전체
    오늘
    어제
    • 분류 전체보기
      • DB
        • DB 기초
        • MySQL
        • SQL 튜닝
      • OS
      • Network
      • Git
      • 디지털콘텐츠기획
      • 소프트웨어공학
      • 코딩테스트
        • 프로그래머스
        • 백준
        • 인프런
      • 공부 일지
      • 독서
        • 클린코드
        • 일상 속 사물이 알려주는 웹 API 디자인
        • 토비의 스프링
        • 객체지향의 사실과 오해
        • 자바 잘 읽는 법
      • 기록 및 회고
      • Cloud
        • AWS
      • 개발
        • Java
        • Spring Core
        • Spring MVC
        • Spring DB
        • Spring Boot
        • Spring Security
        • Spring Batch
        • JPA
        • Test
        • Android
      • 대외활동
        • UMC SERVER
        • 카엔프 SW 아카데미
      • 프로젝트
      • Docker
      • Gradle
      • ELK
      • 실무 이야기
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • 깃허브
  • 공지사항

    • 본인 깃허브입니다!
  • 인기 글

  • 태그

    자바
    객체지향
    SQL
    스프링 부트
    AWS
    운영체제
    Java
    JPA
    도커
    container
    데이터베이스
    AOP
    spring
    인덱스
    test
    코딩 #개발자 #노마드북클럽 #노개북
    spring boot
    spring mvc
    컨테이너
    스프링
    ORM
    mysql
    토비의 스프링
    트랜잭션
    redis
    docker
    객체
    리눅스
    innodb
    프록시
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
Debin
카프카 스트림즈
상단으로

티스토리툴바