CheerUp_Cheers
meorimori
« 2025/02 »
일 |
월 |
화 |
수 |
목 |
금 |
토 |
|
|
|
|
|
|
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
|
관리 메뉴
CheerUp_Cheers
아파치 카프카 - 애플리케이션 프로그래밍 with 자바 (1) 본문
미들웨어
아파치 카프카 - 애플리케이션 프로그래밍 with 자바 (1)
meorimori
2024. 11. 24. 23:01
1.1 카프카 탄생
- 탄생 배경
소스 애플리케이션과 타깃 애플리케이션을 연결하는 개수가 많아짐.
→ 장애 발생 시, 소스 애플리케이션에 그대로 전달.
- 해결
애플리케이션 끼리 연결이 아니라, 한곳에 모아 처리할 수 있도록 중앙 집중화.
→ 의존도 최소화 (어느 타깃 애플리케이션에 넣을지 고민 없이 카프카에 넣기)
- 파티션 동작
파티션 내에서는 FIFO 방식의 큐 자료구조와 유사.
다른 파티션끼리는 순서 보장은 되지 않음.
- 데이터 형식
직렬화, 역직렬화로 통신하여 사실상 제한 없음.
- 기술 용어
- 프로듀서 : 큐에 데이터를 보냄
- 컨슈머 : 큐에서 데이터를 가져감.
- 브로커(서버) : 메시지를 전송하고 관리하는 역할.
- 데이터 레이크 : 생성되는 데이터를 모두 모으는것
- 데이터 파이프 라인
데이터 수집 → 변경 → 적재의 자동화한 것.
- 높은 처리량
데이터를 보낼때와 받을 떄 모두 데이터 묶음으로 받아, 빠르게 처리.
- 확장성
데이터가 많을때/적을때 스케일 아웃과 스케일 인이 가능.
→ 브로커의 개수 변화
- 고가용성
3대 이상의 브로커들의 복제를 통해서 무중단으로 안전하고 지속적인 데이터 처리 가능
- 온프레미스 환경의 서버랙 & 퍼블릭 클라우드 모두 브로커 옵션 구비
- 3대 이상의 브로커가 필요한 이유?
브로커간의 복제되는 시간차이로 인해 유실 가능성 있어서.
1.3 데이터 레이크 아키텍처와 카프카의 미래
- 데이터 레이크 아키텍처
- 람다 아키텍처
디버깅
배포, 운영 분리에 대한 이슈
로직의 파편화
- 카파 아키텍처.
배치 레이어 제거, 스피드 레이어에서 데이터 모두 처리
→ 서비스에서 생성되는 모든 종류의 데이터를 스트림 처리 해야함
- 배치 데이터
일반적으로 배치 데이터는 각 시점의 전체 데이터의 스냅샷
배치 데이터를 로그로 표현할때에는 변환 기록을 시간 순서대로 기록함으로써 스트림 처리 가능