본문 바로가기
Kafka

카프카 개념 정리(2) - 카프카의 동작 방식 Pub Sub

by devLog by Ronnie's 2022. 12. 22.

카프카에 대한 개념을 정리하는 시간을 가지려 한다. 그 두번째로 카프카의 동작 방식과 pub / sub 모델의 대한 장단점과 특징 및 메시징 시스템이란 무엇인지에 대해서 정리한다. 

카프카 개념 정리(2) - 카프카의 동작 방식 Pub Sub

 

카프카 개념 정리(2) - 카프카의 동작 방식 Pub Sub

 

카프카 동작 방식


카프카는 메시징 서버로 동작한다. 메시징 시스템이란 메시지라고 불리는 데이터 단위를 퍼블리셔 또는 프로듀서에서 카프카에 토픽이라는 각각의 메시지 저장소에 데이터를 저장하면 섭스크라이버 또는 컨슈머가 원하는 토픽에서 데이터를 가져가는 형식을 말하며 이 처럼 중간에 메시징 시스템 서버를 두고 메시지를 보내고 받는 통신을 Pub/Sub 모델이라고 한다.

 

Pub/Sub 모델이란


Pub/Sub 모델은 비동기 메시징 전송 방식으로 발신자의 메시지에는 수신자가 정해져 있지 않는 상태로 발행한다. 그리고 이를 구독한 수신자만 정해진 메시지를 받을 수 있다. 이처럼 수신자는 발신자 정보가 없어도 원하는 메시지만 수신할 수 있으며 이런 구조로 인하여 높은 확장성을 확보할 수 있다.

 

 

반면 Pub/Sub 모델이 아닌 일반적인 통신 방법에서는 직접 연결(Connection)하여 통신하게 되는데 이러한 구조는 빠른 전송 속도와 전송 결과를 신속히 알 수 있다는 장점이 존재하지만 이런 통신 과정 속에서 특정 개체에 장애가 발생하는 경우 메시지를 보내는 쪽에서 대기 처리등을 개별적으로 해주지 않으면 시스템에서 문제가 발생된다.

 

이러한 부분 때문에 시스템의 규모가 커지면 커질수록 확장성에 있어서 문제가 발생할 수 있다. 그래서 발생된 것이 Pub/Sub 모델이다.

 

Pub/Sub 모델 단점


하지만 이러한 Pub/Sub 모델도 단점이 있다. 직접 통신을 하는 것이 아니기 때문에 메시지가 정확하게 전달되었는지 확인하려면 복잡하고 직접 통신을 하는 것이 아닌 중간에 메시징 시스템을 거치기 때문에 메시지 전달 속도가 빠르지 않다는 단점이 있어 기존의 Pub/Sub 모델에서는 대규모 데이터를 전달하기보다 간단한 데이터를 전송하는데 주로 사용이 되었다.

 

카프카 메시징 시스템


이러한 Pub/Sub 모델에 단점을 해결한 것이 카프카의 메시징 시스템이다. 메시지 교환 전달의 신뢰성 관리를 모두 프로듀서와 컨슈머에게 넘기고 부하가 많이 걸리는 교환기 기능도 컨슈머쪽에서 구현함으로써 메시징 시스템 내에서의 작업량을 줄이고 이렇게 줄여진 작업량을 메시징 전달 성능에 집중함으로써 고성능 메시징 시스템을 만들수 있게 되었다.

 

 

카프카 특징


- pub / sub 모델 : publisher / subscriber 모델은 데이터 큐를 중간에 두고 서로 간 독립적으로 데이터를 생산하고 소비한다. 이런 느슨한 결합을 통해서 어느 하나가 다운되더라도 서로 간에 의존성이 없기 때문에 안정적이다.

- 고가용성 및 확장성 : 카프카는 클러스터로 작동하여 fault tolerant한 고가용성 서비스를 제공한다. 그리고 서버를 수평적으로 늘려 안정성 및 성능을 향상시키는 스케일 아웃이 가능

- 분산 처리 : 카프카는 파티션이란 개념을 도입하여 여러개의 파티션을 서버들에서 분산시켜 나누어 처리하여 메시지를 상황에 맞춰 빠르게 처리가 가능하다.

 

        *fault tolerant(어느 한 모듈에 fault(장애)가 발생하더라도 시스템 운영에 전혀 지장을 주지 않도록 설계된 시스템)

 

- 디스크 순차 저장 및 처리 : 메시지를 메모리 큐에 적재하는 기존 메시지 시스템과 다르게 카프카는 메시지를 디스크에 순차적으로 저장하여 서버에 장애가 나더라도 메시지가 디스크에 저장되어 있어 유실 걱정이 없고, 순차적으로 저장되므로 디스크 I/O가 줄어들어 성능이 빨라진다.

 

이전 글


카프카와 카프카의 탄생 배경

 

카프카 개념 정리(1) - 카프카와 카프카의 탄생 배경

카프카에 대한 개념을 정리하는 시간을 가지려 한다. 그 첫번째로 카프카가 무엇인지 간단한 개념과 카프카가 탄생하게 된 배경에 대해서 정리한다. 카프카에 대한 자세한 설명은 (2)에서 정리

sjparkk-dev1og.tistory.com

 

댓글