멘토링1

su-mmer·2022년 6월 22일
0

Kafka Adapter의 탄생 배경

  1. RDBMS에서 데이터를 가져다 kafka에 구축할 때 가져온 데이터의 언어가 다 달랐다 → 관리가 어렵다.
  2. 테이블 변경 시 전부 수정해야 했다.

Kafka Adapter

  1. DB의 어느 테이블이든 상관없이 데이터를 가져올 수 있다.
  2. 제품화(표준화)된 형식을 가진다.
  3. 테이블명+언제 어디서 실행하고, 어디로 보내고 배포하는 것을 rule로 만들어 config 파일을 만들고 파일이 저장되면 작성된 rule에 맞춰 kafka로 보내준다.

MOM(Message Oriented Middleware): 데이터를 저장하는 기술

Hadoop = 빅데이터 라고 과거에 인식했다.
사실 Hadoop(하둡)은 빅데이터가 아니고 대용량 파일 처리에 사용하는 기술이다.

  • Hadoop 장점: 파일이 많이 들어감
  • Hadoop 단점: 느림. 실시간 처리가 안 됨(모아서 한 번에 처리 = 배치)

※ 파일 배치
1. 정형: DB
2. 비정형: 로그, 파일..

message: 2K 정도는 NoSQL에 저장(실시간, 고성능, 빠름)
RDB: 관계형(지켜야 할 사항이 많아 성능이 안 좋음)
NoSQL: 관계성, 무결성 없음. 원테이블 체제

MOM 기술을 사용해서 Hadoop, NoSQL에 저장

예를 들어, 계좌 조회 하는 서비스를 만들 때 Table에서 잔액에 update하면 서버에서 message를 받는 방식을 여러 가지로 구현 가능한데, ①TCP, ②HTTP(Rest API), ③MOM(Queue)의 방법이 있다.
계좌 이체는 바로 일어나야해서 보통 Queue를 쓰진 않는다.
하지만 카드 청구서는 바로 계산할 필요가 없어 카드 내역을 Queue에 모두 저장해놨다가 한 번에 계산한다.
이 경우, Queue를 DB로 사용하는 것이다.
TCP를 쓰게 되면 연결이 끊긴 걸 몰라서 보내야 할 데이터가 쌓이게 된다.

실시간 분석을 하려면 Queue에 쌓아두고 Queue MOM을 Kafka로 많이 쓴다. → 오픈소스이고 성능이 좋다.

다음 멘토링까지 할 일
1. Python으로 MySQL CURD 해보기
2. VM에 Kafka 설치, Python 패키지(consumer, producer) 설치

kafka의 묘미는 실시간 고성능이라 DB의 유입이 많아야 한다.
모니터링 사용

0개의 댓글