| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 | 29 | 30 | 31 |
- DDD
- 단위테스트
- MVC요청플로우
- JDBC
- 로그백
- string
- springsecurity
- TDD
- 클린아키텍처
- AOP
- 문제선택근거
- SpringLegacy
- 이벤트핸들러this
- index
- OOP
- Transaction
- 이벤트핸들러등록
- 커뮤니티서버
- Ajax
- 공통기술
- 전전긍긍
- 디스크i/o
- 설정세팅
- model
- JPA
- 사면초가
- SEQUENCE
- MVC
- 냄새라도
- 공통규약
- Today
- Total
개발이군고구마
[Kafka] 왜 카프카 인가 본문
1. 문제
- 개발 업무를 진행하면서 점점 성능의 중요성을 깨닫게 된다.
- 회사에선 성능을 개선하기 위해서 다양한 방법을 각각의 위치에서 수행하고 있는데,
- 나같은 저 연차 개발자들은 주로 간단한 SQL 튜닝 업무를 하는 것에서 부터 시작해서
- DB 엔진을 교체하거나 프로시저 쿼리 배치로 이관하는 프로젝트들이 진행되고 있다.
- 그 중 가장 언급이 많이 되는 것이 바로 "캐시" 라는 개념인데, 성능을 위해선 레디스 캐시 그리고 가격의 빠른 반영을 위해서 레디스를 기반으로둔 미래 캐시 등을 도입하여 사용하고 있다.
- 한 단계 더 나아가, 데이터에 무언가 가공(ETL)이 가해지는 상황에서 트래픽이 많거나
- 다수의 클라이언트에서 동일한 데이터를 사용하는 경우
- => 인바운드 아웃바운드의 데이터를 동일하게 할 수 있는 방법이 무엇일까 생각하게 되었다.
- => 카프카를 데이터 파이프라인으로 두고, 컨슈머가 레디스 캐시로 데이터를 검증한다면?
2. 과정 : 카프카 장점
[주요 장점]
- 1) 높은 처리량
- 2) 빠른 응답속도
- 3) 안정성
[세부장점]
- 1) 분산 시스템
- 네트워크상 연결된 컴퓨터들의 그룹
- 하나의 서버가 장애가 발생하면, 다른 서버 또는 노드가 대신 처리
- 2) 페이지 캐시
- 3) 배치 전송
- 4) 압축 전송
3. 결과: 카프카 실전 사용 예시
- 데이터 파이프라인 (넷플릭스)

- 데이터 통합 (우버)

4. 질문사항
1) 비동기 처리라는 것은?
- 동기화 방식
인바운드 API -> postgreSQL -> CRUD 타입 구성 -> 데이터베이스 완료 -> 아웃바운드 이벤트 생성
데이터 베이스 오차는 줄일 수 있지만
=> 여러 네트워크 이용하는 환경에서 모든 데이터 변경에 대한 올바른 전달 불확실
=> 동일한 데이터 수정시에 정확한 순서 보장 어려움
=> 빠른 전송을 위한 클라이언트 또는 대량의 배치 전송을 위한 클라이언트 지원 어려움
- 비동기화 방식
프로듀서 토픽 생성 -> 프로듀서 서버 완료
* "카프카" 데이터 확보 (데이터 파이프라인 역할)
컨슈머 토픽 리슨 -> 컨슈머 서버 진행
=> 하나의 로직 처럼 보이지만, 각각의 서버는 요청을 하고 그 스레드는 완료됨
2) 토픽은 왜 파티션에 나누어 저장되는가?
[프로듀서]
- 토픽 : 이메일 주소와 같은 개념 ("토픽", 보낼 값(=객체))
- 토픽의 값은 토픽 안에 파티션에 저장됨
- 메세지의 키 값을 "해시" 처리해 파티션 구함
(메세지의 키 값이 동일하면 해당 메세지들은 모두 같은 파티션으로 전송)
=> 많은 양의 메세지가 들어오는 경우, 파티션을 늘릴 수 있는 기능도 제공
[컨슈머]
- 해당 토픽 리스닝
참고 서적
- 실전 카프카 개발부터 운영까지
- 아파치 카프카 애플리케이션 프로그래밍 with 자바
'SERVER > Kafka' 카테고리의 다른 글
| [Kafka/Redis] Kafka 설치 (0) | 2026.02.18 |
|---|---|
| [Kafka/Redis] Kafka 개념 (0) | 2026.02.03 |
| [Redis/Kafka 이용한 대용량 트래픽 예약 및 쿠폰 발급 서비스] 3. Kafka와 Redis로 동시성, 대량 트래픽 제어 (0) | 2025.03.24 |
| [Redis/Kafka 이용한 대용량 트래픽 예약 및 쿠폰 발급 서비스] 2.대용량 트래픽을 견디기 위한 방법 고민 (0) | 2025.03.24 |
| [Redis/Kafka 이용한 대용량 트래픽 예약 및 쿠폰 발급 서비스] 1.멀티 스레드의 동시성을 고려하지 못한 기존 구조 (0) | 2025.03.02 |