본문 바로가기
개발 교육

kafka란 무엇인가 (1)

by azure05 2023. 12. 11.

kafka란?

카프카(Kafka)는 파이프라인, 스트리밍 분석, 데이터 통합 및 미션 크리티컬 애플리케이션을 위해 설계된 

고성능 분산 이벤트 스트리밍 플랫폼이다.

Pub-Sub 모델의 메시지 큐 형태로 동작하며 분산환경에 특화되어 있다. Fortune 100개 기업 중 80% 이상이 Kafka를 사용한다. 국내에서도 많이 사용하는 추세다. 예시로는 카카오, 네이버 등이 있다. 

 

카프카의 배경?

동영상 강의를 들으며 카프카는 링크드인에서 제공한 서비스라고 들었는데, 

처음에 잘못들은 줄 알았다. 

근데 진짜 였다. 비즈니스 소셜 네트워크 서비스인 링크드 인에서 개발하였다.

 

기존 데이터 시스템의 문제점?

각 애플리케이션과 DB가 end to end로 연결되어있음.

각 파이프라인이 파편화 되어있음.

요구사항이 늘어남에 따라 시스템 복잡도가 높아질 수 있음.

 

1. 시스템 복잡도 증가

    통합된 전송영역이 없어 데이터 흐름 파악이 어렵고, 시스템 관리가 어렵다. 

    또한 특정 부분에서 장애 발생시 조치 시간이 오래걸림. (연결되어있는 모든 애플리케이션 확인해야되기 때문)

    하드웨어 교체, 소프트웨어 업그레이드 시에 관리해야할 포인트가 늘어나고, 작업시간이 증가된다. 

 

2. 데이터 파이프라인 관리 어려움

    각 애플리케이션과 데이터 시스템 간의 별도의 파이프라인 존재하고, 파이프라인 마다 데이터 포맷과 처리방식이 다르다.

    새로운 파이프라인 확장이 어려워 지면서, 확장성 및 유연성 떨어짐

    데이터 불일치 가능성이 있어 신뢰도 감소

 

 

 

그 결과 모든 이벤트/ 데이터의 흐름을 중앙에서 관리할 수 있는 카프카를 개발하게 되었다. 

카프카를 적용하면서 앞서 언급한 두가지 문제점이 어느정도 완화되었다. 

 

- 모든 데이터/이벤트 흐름을 중앙에서 관리가능

- 새로운 서비스/시스템이 추가되어도 카프카가 제공하는 표준 포맷으로 연결하면 되므로 확장성과 신뢰성이 증가

- 개발자는 각 서비스간의 연결이 아닌, 서비스들의 비즈니스 로직에 집중 가능해짐

 

 

 

 

우선 카프카를 이해하기 위해 메세지/ 이벤트 브로커와 메세지 큐에 대한 사전적 이해가 필요하다

 

 

메세지 큐? (Message Queue, MQ)

메세지 큐는 메세지 지향 미들웨어를 구현한 시스템이다. 프로그램 간의 데이터를 교환할 때 사용하는 기술이다. 

 

여기서 우리가 주목해야하는 부분은 queue인데 

Message Queue에서 메세지는 Endpoint간에 직접적으로 통신하지 않고, 중간에 Queue를 통해 중개된다는 것이다.

 

메시지 큐의 장점?

1. 비동기

2. 낮은 결합도

3. 확장성

4. 탄력성

5. 보장성

 

 

 

 

'개발 교육' 카테고리의 다른 글

Kafka (2)  (0) 2023.12.12
스프링 12/12  (0) 2023.12.12
12.7 자바스크립트  (1) 2023.12.08
11.29 쿠키와 세션  (2) 2023.11.29
11.28 JSP  (4) 2023.11.28