지금까지 강의를 들으며 공부하고 학습해온 내용들
2021.03.22 - kafka강의1 | 아파치 카프카(Apache Kafka)란?
2021.03.22 - kafka강의2 | Topic이란? Pub/Sub 구조
2021.03.24 - kafka강의3 | 브로커, 복제, ISR(in-sync-replication)
2021.03.24 - kafka강의4 | 파티셔너(Partitioner)란?
2021.03.25 - kafka강의5 | 컨슈머 랙(Consumer Lag)이란?
하지만 이렇게 이론만 들어도 사실 잘 뭔가 와닿지 않는다.
대충 아 이런거구나 라고만 생각이 들지 실질적으로 어떻게 동작하는지 눈으로 봐야할것 같다.
그래서 kafka를 가지고 뭔가 만들어보고 싶다.
아래의 내용 및 이미지는 [데브원영] 아파치 카프카 for begineers 강의 요약 및 추가 공부한 내용입니다.
자세한 강의는 연관링크 참고 부탁드립니다. 감사합니다.
컨슈머구현
kafka-client 라이브러리를 사용해서 java또는 scala를 통해 컨슈머 구현가능
이때 구현한 kafkaconsumer객체를 통해 현재 lag정보를 가져올 수 있다
lag모니터링
lag실시간 모니터링하고 싶다면 데이터를 elasticsearch나 influxDB와 같은 저장소에 넣은뒤 그라파나 대시보드 확인
하지만, 컨슈머 단위에서 lag모니터링은 비.권.장
아주위험하고 운영요소가 많이 들어간다
컨슈머 로직단위에서 lag을 수집하는 것은 컨슈머 상태에 디펜던시가 걸리기 때문
컨슈머가 비정상적으로종료되면 lag정보를 더이상 측정할 수 없게 됨
컨슈머가 개발될 때마다 해당 컨슈머에 lag정보를 특정 저장소에 저장할 수 있도록 로직을 개발해야한다
즉, lag을 수집할 수 있도록 개발한 컨슈머만 lag을 모니터링할 수 있다 -> 그래서 링크드인이 개발함
burrow
아파치 카프카와 함께 카프카의 컨슈머 lag을 효과적으로 모니터링 할 수 있도록 만든 오픈소스
golang으로 개발됨
이렇게 다운로드를 받을 수 있는 깃허브 존재 : github.com/linkedin/Burrow
컨슈머 lag모니터링을 도와주는 독립적인 애플리케이션
burrow 특징
1. 멀티카프카 클러스터 지원
카프카 클러스터가 여러개 돌아도 burrow 1개만 사용해도 모두 모니터링 가능
2. sliding window를 통해 컨슈머의 상태확인
컨슈머의 status를 error / warning/ ok로 표현
데이터 양이 일시적으로 많아져서 offset이 증가되고 있으면, warning
데이터 양이 많아지고 있는데 컨슈머가 데이터를 가져가지 않고 있으면, error
실제로 컨슈머의 문제를 알 수 있음
3. HTTP API 제공
API호출로 response받은 데이터를 시계열 db와 같은 곳에 저장하는 application을 만들어서 활용도 가능
'Book & Lesson' 카테고리의 다른 글
[책정리] 빅데이터를 지탱하는 기술 1-2. 빅데이터시대 데이터분석기반 (0) | 2021.06.16 |
---|---|
[책정리] 빅데이터를 지탱하는 기술 1-1. 빅데이터의 기초지식(역사) (0) | 2021.06.16 |
[책정리] 빅데이터를 지탱하는 기술 목차 (0) | 2021.06.16 |
kafka강의5 | 컨슈머 랙(Consumer Lag)이란? (0) | 2021.03.25 |
kafka강의4 | 파티셔너(Partitioner)란? (0) | 2021.03.24 |
kafka강의3 | 브로커, 복제, ISR(in-sync-replication) (0) | 2021.03.24 |