카프카 스트림즈

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
      • 실무 이야기
  • 블로그 메뉴

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

    • 깃허브
  • 공지사항

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

  • 태그

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

  • 최근 글

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

티스토리툴바