2023. 1. 24. 16:05ㆍIT
카프카(Kafka) 운영(관리) 할수 있는 기능들
카프카는 대용량 데이터를 처리해야 하는만큼 유지보수에
많은 신경을 쏟아부어야 한다.
그것을 온전히 본인이 감당하기에는 많은 어려움이 있을것이다.
하지만 많은 걱정할 필요는 없다!!!
아파치(Apache)에서는 사용자들이 카프카를 사용하면서
보다 쉽게 관리할 수 있는 기능들을 제공해주기 때문이다!!!
그 전에, 카프카가 무엇이고 어떻게 작동하는지 궁금하다면
아래의 블로그를 먼저 보고오는 것을 추전한다!!
이제 아파치(Apache)에서 제공해주는 기능들중
3가지의 기능에 대해서 알아보자!!
1) 카프카 버로우(Kafka Burrow)
컨슈머 랙(Consumer leg) 모니터링 어플리케이션(오픈 소스)
Kafka-client 라이브러리를 통해
카프카 컨슈머는 Java or Scala와 같은 언어를 통해 구현가능하고
구현한 카프카 컨슈머 객체를 통해 현재 lag정보를 가져올 수 있다.
실시간 모니터링은 데이터를 Elasticsearch or InfluxDB와
같은 저장소에 넣은뒤 Grafana 대시보드를 통해 확인 가능하다.
켠슈머 단위위에 lag을 모니터링하는것은위험하고 운영요소가 많이 들어간다.
컨슈머 로직단에서 lag를 수집하는 것은 컨슈머 상태에 디펜더시 걸리기 때문이다.
컨슈머가 비정상적으로 종료하게되면 lag정보를 보낼 수 없기 때문에
측정할 수 없고 컨슈머가 개발 될 때마다
lag정보를 저장소에 저장 할 수 있는 로직을 개발해야한다.
(안전하고 효과적인 lag모니터링을 위해 Burrow 사용)
Burrow는 Go로 작성되었고 GitHub에 배포되어 있다.
Burrow가 제공하는 기능들은 무엇이 있을까?
1. 멀티 카프카 클러스터 지원 :
카프카 클러스터가 여러개도라도 Burrow 1개만 실행해도 컨슈머 lag를 모두 모니터링 할 수 있다.
2. 슬라이딩 윈도우를 통한 컨슈머의 상태확인 :
에러,위험,확인으로 표현한다.
(컨슈머 오프셋이 증가해도 데이터를 가져오는지 확인)
3. HTTP api 제공 :
HTTP api를 통해 정보를 조회할수있다.
카프카 랙(Kafka Lag) :
카프카를 운영함에 있어서 중요한 모니터랑 지표중 하나이다.(Lag : 뒤떨어지다, 지체되다)
파티션에 프로듀서가 계속해서 데이터를 넣고 컨슈머가 계속해서
데이터를 가져가게 될 때 프로듀서가 넣은 데이터의 오프셋,
컨슈머가 가져간 데이터의 오프셋 두 개의 오프셋 간에 차이를 '컨슈머 랙'이라고 한다.
(recodes-lag-max : 여러개의 파티션이 있을때 가장 높은 숫자의 leg)
2) 카프카 스트림즈(Kafka Streams)
카프카에 저장된 데이터를 처리하고 분석하기 위해 개발된 클라이언트 라이브러리이다.
카프카 스트림즈(Kafka Streams)이 제공하는 기능들은 무엇이 있을까?
1. 이벤트에 즉각적으로 반응한다.
(이벤트 발생 후 조치까지 지연시간이 거의 없으며 분석은 항상 최신의 데이터를 반영)
2. 정적 분석보다 더 많은 데이터를 분석한다.
(저장 후 분석 하지 않는다.)
3. 지속적으로 유입되는 데이터 분석에 최적화 된다.
4. 대규모 공유 데이터베이스에 대한 요구를 줄일 수 있어 인프라에 독립적으로 수행할 수 있다.
3) 카프카 커넥트(Kafka Connect)
데이터 파이프라인 생성 시 반복 작업을 줄이고 효율적인 전송을 이루기 위한 어플리케이션이다.
(데이터 허브의 역할)
카프카 커넥트(Kafka Connect)가 제공하는 기능들은 무엇이 있을까?
1. 데이터를 어디서 복사하는지와 어디에 붙여넣어야 하는지를 정의한다.
2. 프레임워크(다른 모듈들의 실행순서를 관장함)이고 커넥터는 그 안에서 돌아가는 플러그인이다.
3. 커넥트 프레임워크를 실행하고 특정 플러그인을 실행시키면 우리가 원하는
행동(데이터를 어디서 복사해와서 어디다가 붙여넣는)을 할 수 있다.
Source Connector :
Source System의 데이터를 카프카 토픽으로 Publish 하는 커넥터 (Producer의 역할을 하는 커넥터)
Sink Connector :
카프카 토픽의 데이터를 Subscribe해서 Target System에 반영하는 커넥터 (Consumer의 역할을 하는 커넥터)
이제 아파치(Apache)에서 제공해주는 기능들중
3가지의 기능에 대해서 모두 알아보았다!!!
'IT' 카테고리의 다른 글
[Linux] 리눅스 서버관리 명령어 top 내용 파악하기 (0) | 2023.01.24 |
---|---|
[WEB] 쿠키(Cookie), 세션(Session), 토큰(Token), JWT 의미와 차이점 (0) | 2023.01.24 |
[Kafka] 카프카(Kafka)의 기본 구성 요소와 동작 (0) | 2023.01.24 |
[Kafka] 아파치 카프카(Apache Kafka)에 대한 정의와 사용하는 이유 (0) | 2023.01.24 |
[WEB] WEB 3.0이란 무엇일까? (0) | 2023.01.24 |