공부해봅시당

[Kafka] 카프카 시작하기 4 본문

STUDY/Kafka

[Kafka] 카프카 시작하기 4

tngus 2023. 6. 29. 16:16
현재 작성 중인 KAFKA 시리즈는 [카프카 핵심 가이드] 책을 보고 정리한 글임을 밝힙니다.

 

1.4 데이터 생태계

데이터 생태계에 있어서 순환 시스템을 제공

모든 클라이언트에 대해 일관된 인터페이스를 제공하면서 다양한 인프라스트럭처 요소들 사이에 메시지 전달

 

1.4.1 이용 사례

1. 활동 추적

사용자가 뭔가 행동을 할 때마다 이것에 대한 메시지를 생성하는 프론트엔드 애플리케이션 작동

이 메시지들은 하나 이상의 토픽으로 발행되어 백엔드에서 작동 중인 애플리케이션에 전달됨

이 애플리케이션들은 다양하게 활용됨(검색 결과 업데이트, 보고서 생성, 기계 학습 시스템에 데이터 전달 등)

 

2. 메시지 교환

사용자에게 이메일과 같은 알림을 보내야하는 애플리케이션에서도 활용 가능

메시지 형식이나 전송 방법에 신경 쓸 필요 없이 메시지 생성 가능

메시지 누적 기능 지원

  • 아래와 같은 작업 수행하는 애플리케이션이 보낼 메시지를 모두 읽어와서 같은 방식으로 처리 가능
    • 같은 look and feel을 사용해서 메시지를 formatting 혹은 decorating 해줌
    • 여러 개의 메시지를 모아서 하나의 알림 메시지로 전송
    • 사용자가 원하는 메시지 수신 방식 적용

 

3. 지표 및 로그 수집

애플리케이션 및 시스템의 지푯값과 로그 수집 시 사용

엘라스틱서치와 같은 로그 검색 전용 시스템이나 보안 분석 애플리케이션으로 보내질 수 있음

 

4. 커밋 로그

카프카가 데이터베이스의 커밋 로그 개념을 기반으로 해서 만들어진 만큼, 데이터베이스에 가해진 변경점들을 카프카로 발행 가능

이 스트림을 지켜봄으로써 쉽게 실시간 업데이트를 받아볼 수 있음

  • 체인지로그 스트림
    • 체인지로그(changelog, 변경 기록)
      • 웹 사이트나 프로그램을 제작하는 것 같은 어떤 프로젝트를 진행할 때에 변경 사항에 대한 기록
    • 카프카와 체인지로그의 관계
      • 카프카의 복제 및 통합 기능
        • 데이터베이스에 가해진 업데이트를 원격 시스템으로 복제하거나, 다수의 애플리케이션에서 발생한 변경점을 하나의 데이터베이스 뷰로 통합하는 것에도 사용 가능
      • 카프카의 메시지 보존 기능
        • 체인지로그를 저장하는 버퍼로서 유용하게 사용될 수 있음
      • 카프카의 로그 압착(log compaction) 기능
        • 로그 압착 기능은 토픽에 키별로 마지막 값 하나만을 보존하는 기능임
        • 이를 통해 로그를 더 오랫동안 보존할 수 있음

 

5. 스트림 처리

카프카를 사용하는 거의 모든 경우에 해당

대체로 하둡(Hadoop)의 맵리듀스(MapReduce, 여러 노드에 테스크를 분배하는 방법)와 같은 기능을 수행하는 애플리케이션을 가리킴

  • 하둡과 스트림의 차이점
    • 하둡
      • 오랜 시간에 걸쳐 누적된 데이터를 처리
    • 스트림
      • 메시지가 생성되자마자 실시간으로 데이터 처리
      • 스트림 처리 프레임워크를 사용할 때의 이점
        • 카프카 메시지를 처리하는 작은 애플리케이션 작성 가능
        • 각종 지푯값 계산 작업 수행 가능
        • 다른 애플리케이션이 효율적으로 처리할 수 있도록 하는 메시지 파티셔닝 가능
        • 다수의 원본으로부터 들어온 데이터를 사용해서 메시지 변환 가능

'STUDY > Kafka' 카테고리의 다른 글

[Kafka] 카프카 시작하기 3  (0) 2023.06.29
[Kafka] 카프카 시작하기 2  (0) 2023.06.29
[Kafka] 카프카 시작하기 1  (1) 2023.06.29
[KAFKA] 들어가기 전  (0) 2023.06.29