KEMBAR78
[Main Session] 카프카, 데이터 플랫폼의 최강자 | PDF
실시간 비동기 스트리밍 솔루션

KAFKA의 기본부터 확장 응용까지
KAFKA
- 카카오 인프라팀 소속
- 페이스북 KAFKA 한국 사용자 그룹 개설자

(facebook.com/groups/kafkakorea/)
- <카프카, 데이터 플랫폼의 최강자> 저자
예스24 IT 분야 1위 (이틀..;)
- Popit.kr 저자, 개인 브런치 운영 중
고승범(일명 피터)
▸ KAFKA와 첫 만남
▸ KAFKA란?
▸ Use Cases
▸ Producer
▸ Consumer
▸ Operational Tips
오늘 나눌 이야기
KAFKA와 첫 만남
Service A
Service B
카프카 운영해주세요
전사 공용 KAFKA 오픈
KAFKA란?
출처: confluent blog
출처: confluent blog
▸ High Throughput
▸ 실시간 로그 통합
▸ 무중단(장비의 장애)
▸ 이기종과의 호환성
▸ 간단한 스케일 아웃
▸ 프로듀서와 컨슈머 역할 분리
write
출처: google 이미지
출처: confluent blog
출처: confluent blog
약 1조의 메시지 처리
카프카 용어
KAFKA Cluster
broker 1 broker 2 broker 3
KAFKA Cluster
broker 1 broker 2 broker 3
peter-topic
KAFKA Cluster
broker 1 broker 2 broker 3
peter-topic

partition0
A B C D E
offset 0 offset 1 offset 2
partition 0
오프셋 < 파티션 < 토픽 < 브로커 < 카프카 클러스터
USE CASES
MicroService Architecture
RabbitMQ Log System
Real Time, Flexible, Scalability
로그를 통합하고 싶어요

CS때문에 각 서버에서 GREP 하고 있어요
Service A-1
MicroService Architecture
Service A-2
Service A-4
Service A-5
Service A-3 Service A-6 Service A-7
Service A-1
Service A-2
Service A-3
Action
Metric
Nginx
Analysis
추가 API 개발 및 배포
Service A-1
Service A-2
Service A-3
Action
Metric
Nginx
관리 어려움
Analysis
Service A-1
Service A-2
Service A-3
Action
Metric
Nginx
백앤드 시스템의 장애
Analysis
다 해결할 수 있어요!!
Service A-1
Service A-2
Service A-3
Action
Metric
NginxKAFKA
Analysis
RealTime
Service A-1
Service A-2
Service A-3
Action
Metric
NginxKAFKA
Flexible
Analysis
Service A-1
Service A-2
Service A-3
Action
Metric
NginxKAFKA
Flexible
Analysis
Service A-1
Service A-2
Service A-3
Action
Metric
NginxKAFKA
Flexible
Analysis
Service A-1
Service A-2
Service A-3
Action
Metric
NginxKAFKA
Scalability
Analysis
RabbitMQ Log System
09:14:11.58009:14:11.491
0.089s
망설이지 말고 카프카 써보세요!!
PRODUCER
▸ ACKS = 0
▸ 매우 빠르게 전송할 수 있지만, 파티션의 리더가 받았는지는
알 수 없음.
▸ ACKS = 1 (Strongly Recommend)
▸ 메시지 전송도 빠른 편이고, 파티션의 리더가 받았는지 확인
▸ 가장 많이 사용되고, 대부분 기본값으로 설정
▸ ACKS = ALL
▸ 메시지 전송은 느리지만, 손실 없는 메시지 전송 가능
Producer ACKS
ACKS=1은 안전한가?
CONSUMER
파티션의 오프셋 순서대로
파티션의 오프셋 순서대로
하나의 파티션에는 하나의 컨슈머만 가능
하나의 파티션에는 하나의 컨슈머만 가능
하나의 파티션에는 하나의 컨슈머만 가능
하나의 파티션에는 하나의 컨슈머만 가능
컨슈머 그룹은 그룹내에서 정보를 공유
카프카는 메시지를 기본값으로 7일간 보관
컨슈머 그룹을 이용한 멀티 컨슈머
OPERATIONAL TIPS
Monitoring
Threshold
WARN, ERROR
Kafka Manager
▸ Yahoo
▸ 클러스터 관리
▸ 토픽, 오프셋, 브로커, 파티션 정보 확인
▸ https://github.com/yahoo/kafka-manager#kafka-
manager
Kafka Manager
LAG
뒤에 처지다, 뒤떨어지다.
TOPIC      PARTITION  CURRENT-OFFSET  LOG-END-OFFSET  LAG
peter-topic   0          2               4                2
peter-topic   1          2               3                1
peter-topic   2          2                3                1
TOPIC      PARTITION  CURRENT-OFFSET  LOG-END-OFFSET  LAG
peter-topic   0          2               4                2
peter-topic   1          2               3                1
peter-topic   2          2                3                1
4 - 2 = 2
Burrow
▸ Kafka Consumer Lag Checking
▸ HTTP
▸ Go
▸ https://github.com/linkedin/Burrow
파티션 수 늘려주세요!!
100/sec10/sec
300/sec400/sec
400/sec400/sec
디스크 공간이 부족해요!!
retention.hours 168(7일)
retention.ms=86400000(1일)
카프카는 좋은 애플리케이션입니다.
감사합니다
Q&A
https://brunch.co.kr/@peter5236

[Main Session] 카프카, 데이터 플랫폼의 최강자