kafka 이해

yoon__0_0·2024년 7월 4일
0

이어드림 수업

목록 보기
84/103

기업들의 사용

  • 개발 API
  • 모니터링

  • 연속적인 데이터의 흐름의 유입량과 주기가 불규칙
    • 대표적 : 통신사 , 제조 (반도체 제외 - 클라우드 사용 못함) , 제조 , 리테일

kafka 이전

  • File 또는 DB 기반 데이터 연동
    • 네트워크 문제, 프로그래밍 문제 등 장애시 재처리가 어려움
    • 예외처리가 많음
    • 너무 많은 데이터로 잘 전달되지 않음
  • Message Queue 활용
    • API 기반 데이터 전달
    • Queue에 넣어주는 것 ( Kafka와 비슷한 로직)
    • 메모리를 넘어서는 데이터가 들어오면 대용량 데이터 처리 한계 [ 데이터 유실 가능]
  • NAS등 스토리지 서버
    • 대역폭의 제한
    • 대용량 처리 한계

Kakfa 이외

  • Rabbit MQ
    • 범용적 메시지 브로커
    • 다양한 큐 기능 제공
    • UI 기반 모니터링
  • Kafka
    • 분산가능
    • 빠르게 가능
    • 스토리지 사용
  • redis
    • 지연 없는 빠른 전달
    • 메모리 기반
    • 조금의 유실 가능

Kafka 장점

  • 디스크 사용
    • 디스크 : 순차적으로 가져옴
    • 카프카 : 순서대로 저장 -> 디스크도 순서대로 움직임 (왔다갔다 하지 않아도됨)
    • 카프카는 이런 용도로만 사용해야힘
    • 어제 데이터 -> 오늘 -> 그저께 이런식으로 사용하면 안됨.
    • 꼬옥!!시간에 흐름 이력 데이터에 최적화 되어있음.
  • zero copy
    • kernel 레벨에서 바로 데이터 전송
    • 원래는 (disk -> buffer -> ui -> buffer -> nic buffer)
    • 원래는 java에서 사용하기 때문에 application기능으로 I/O가 되어야하는데, kafka는 그런게 없음.
    • application 코드 내에 커널 내에서 쓰는 api 사용 -> transferTo()
  • 대용량 처리
    • 원래는 데이터 복제로 유실을 적게 함
    • 분산 병렬 처리
  • 유실 안정성
    • 복제 : 여러대 서버에 동시에 적재
    • 여러 파티션에 복제 ( 다른 서버에 데이터가 존재함)

  • 처리량
    • 100byte 기준 초당 600만건 정도 가능
    • 1000bye 기준 200만건 조금 안되게 처리 가능
    • 레코드사이즈가 작을수록 더 많은 건 수를 전송 가능

    • 레코드 사이즈가 클수록 더 많은 데이터를 전송 가능
    • 작은 메시지 많이 vs 한번에 많이

    • rabbitMQ는 초당 30mb 이상은 처리 못함
    • 카프카는 605MB까지 초당 보낼 수 있음.
  • 데이터 허브 역할
    • 그냥 냅다 넣어놓고 가져가고 싶은 사람한테 가져가고 싶은 사람이 가능하도록 함.
    • 재사용, 중복 투자

Kafka의 활용

  • 통신
    • 비 정상 통화 이력
    • 사용자 위치 기반 통계 ( 재난상황 등)
    • 기지국 트래픽 분석 ( 통신품질 - 안테나)
    • 통신 환경 사전 감지 및 개선
  • 금융
    • 비 정상 거래 내역 감지
    • 대출 사기 감지
    • 거래 패턴 조회
    • 내부 데이터 송수신
  • 제조 및 유통
    • 장비 센서 고장 감지
    • 제품 불량 탐지
    • 고객 피드백 분석
    • 제품 현황 분석 등
profile
신윤재입니다

0개의 댓글