2023. 1. 24. 16:00ㆍIT
Apache Kafka(아파치 카프카)
대용량 데이터 처리에 대해 공부한다면
'아파치 카프카'라는 단어를 많이 들어봤을 것이다!!!
대체 카프카가 무엇이길래 사람들이
이야기하며 공부하는 것일까?
오늘은 'Apache Kagka(아파치 카프카)'에 대해서 공부해보자!!!
우선 나는 유튜브를 통해 카프카에 대해서
실습해 보았으며 Kafka에서 유명하신 '데브원영 DVWY'님의 유튜브를 보고
공부한 내용들을 적어보았다!!
https://www.youtube.com/watch?v=waw0XXNX-uQ&list=PL3Re5Ri5rZmkY46j6WcJXQYRlDRZSUQ1j
1) Kafka란 무엇일까?
LinkedIn에서 개발된 분산 메시징 시스템으로써 2011년에 오픈소스로 공개되었다.
대용량의 실시간 로그처리에
특화된 아키텍처 설계를 통하여 기존 메시징 시스템보다 우수한 TPS를 보여주는 시스템
(Transaction Per Second(TPS) : 시스템이 초당 처리하는 업무 수)
2) KafKa가 세상에 나온 이유!
어플리케이션이 알아야 할 관계들이 많아짐에 따라
운영 관리(배포, 장애 대응 불편)가 복잡하게 되었고 데이터 전송시
프로토콜 포맷의 파편화가 심해져 유지보수가 어려워져
이를 정리할 필요성을 느낀 것
3) Kafka가 문제점을 해결하는 방법!
어플리케이션의 관계를 연결하는 것이 아닌(소스 Apps와 타겟 Apps의 커플링 약화),
한 곳에 모아서 처리할수 있도록
어플리케이션 사이에 Kafka가 존재하여 데이터 중앙집중화 하여 문제를 해결
(Kafka는 유연한 큐 역할을 한다고 볼 수 있다.)
4) WHY KAFKA?
1. 기존 AMQP와 다른 특징을 가진 스트리밍 플랫폼
높은 처리량, 확장성, 영속성, 고가용성 특징을 가진 카프카는
기존의 AMQP 기반 메시징 큐와 다른 특징을 가지고 있으며
브로커에 저장한 메시징 데이터는
처리 후 삭제되지 않고 저장되기 때문에 데이터를 재사용하는데 특화되어 있습니다.
AMQP(Advanced Message Queuing Protocol) :
메시지 지향 미들웨어를 위한 개방형 표준 응용 계층 프로토콜이다.
AMQP의 정의 기능들은 메시지 지향, 큐잉, 라우팅(P2P 및 발행-구독), 신뢰성, 보안이다
이외에도 파티셔너, 리텐션, ISR과 같은 개념과 같은 카프카만의 특징이 있으며
이러한 특징을 학습하면 더욱 카프카를 효과적으로 사용, 활용할 수 있습니다.
파티셔너(Partitioner): 프로듀서가 데이터를 보내면 무조건 파티셔너를 통해서 브로커로 데이터가 전송, 데이터를 어떤 파티션에 넣을지 결정하는 역할
리텐션(Retention) : 토픽의 데이터를 유지하는 기간을 지정, 이 기간이 지난 데이터는 카프카에서 제거
ISR(In Sync Replica) : 각 브로커의 복제본의 replication group이 바로 ISR이다. ISR내에서 리더와 팔로워를 선정
2. 스트림 프로세싱 개념 습득
프로듀서, 컨슈머 애플리케이션 개발을 통해
카프카에 저장된 데이터를 스트리밍 처리하는 방법을 습득할 수 있습니다.
카프카에서 공식적으로 제공하는 스트림즈 DSL, 프로세서 API를 사용하면
스트리밍 데이터 프로세싱 애플리케이션을 빠르게 개발하고 유연하게 운영할 수 있습니다.
스트림 프로세싱 : 신규 데이터를 끊임없이 처리해 결과를 만들어내는 행위
스트림즈 DSL : 토픽에 적재된 데이터를 실시간으로 변환하여 다른 토픽에 적재하는 라이브러리
3. 카프카 확장 생태계
데이터 파이프라인을 유연하고 빠르게 만들기 위해
카프카 커넥트, 미러메이커와 같은 기술이 카프카에 포함되어 있으며
이를 통해 반복된 작업은 줄이고 다양한
카프카 클러스터를 종합 운영하여 효과적인 데이터 수집 파이프라인을 구축할 수 있습니다.
카프카 커넥션 : 데이터 파이프라인 생성 시 반복 작업을 줄이고 효율적인 전송을 이루기 위한 어플리케이션
카프카 미러메이커 : 브로커의 특정 topic을 다른 곳으로 다른 브로커로 보낼 수 있는 간단한 기능, 복제
또한 카프카를 SaaS(Software as a Service)로 제공하는 서비스를 사용하면
5분 만에 클러스터를 구축하고 카프카를 테스트할 수 있으므로
PoC(Proof of Concept) 및 학습 용도로 사용해보는 것도 좋습니다.
카프카의 구성요소와 어떻게 작동하는지 궁금하다면 아래의 블로그로 이동해보자!!!
'IT' 카테고리의 다른 글
[Kafka] 아파치 카프카(Apache Kafka) 운영을 지원해주는 3가지 기능 (0) | 2023.01.24 |
---|---|
[Kafka] 카프카(Kafka)의 기본 구성 요소와 동작 (0) | 2023.01.24 |
[WEB] WEB 3.0이란 무엇일까? (0) | 2023.01.24 |
[SERVER] 리눅스 자격증 LFCS란 무엇일까? (0) | 2023.01.24 |
[WEB] 웹 서버와 웹 어플리케이션 서버의 차이(Web Server, WAS) (0) | 2023.01.24 |