본문 바로가기

카프카5

카프카 개념 정리(6) - 카프카 컨슈머의 커밋과 오프셋 관리 이번 시간에는 카프카 컨슈머의 커밋과 오프셋을 어떻게 관리를 하는지에 대해 알아본다. 카프카가 다른 큐 솔루션과 차별화되는 특징은 하나의 토픽에 대해서 여러 용도로 사용할 수 있다는 점이다. 일반적인 큐 솔루션은 특정 컨슈머가 데이터를 가져가게 되면 큐에서 삭제되어 다른 컨슈머가 데이터를 가져갈 수 없는데 카프카는 오프셋이라는 개념을 사용하여 여러 컨슈머가 토픽에서 메시지를 가져올 수 있도록 구현하였다. 카프카 개념 정리(6) - 카프카 컨슈머의 커밋과 오프셋 관리 커밋과 오프셋 관리 커밋과 오프셋 컨슈머가 poll()이라는 함수를 호출할 때 카프카에 저장되어 있는 메시지를 읽어오게 된다. 여기서 중요한 것은 어떤 과정을 통해서 데이터를 가져오는지에 대해서 알아야한다. 먼저 컨슈머 그룹의 컨슈머들은 각각.. 2023. 1. 8.
카프카 개념 정리(5) - 파티션 할당과 리더와 팔로워 선출 ISR 이번 시간에는 컨슈머와 파티션의 개수의 따른 할당 케이스와 그 과정에서 리더와 팔로워를 왜 선출하고 어떤 방식으로 선출되어 사용되는지 정리한다. 추가적으로 ISR(In Sync Replica)에 대한 개념도 정리한다. 카프카 개념 정리(5) - 파티션 할당과 리더와 팔로워 선출 컨슈머와 파티션의 개수의 따른 할당 케이스는? 파티션은 컨슈머 그룹내의 컨슈머와 1:1 또는 n:1매칭이 된다고 했는데 케이스별로 컨슈머가 많을수도 있고 파티션이 더 많을수도 있다. 각 상황별로 어떻게 매칭되는지 알아본다. 파티션 3개와 컨슈머 3개 일때 -> 각각 하나의 컨슈머에 파티션 할당 파티션 2개와 컨슈머 3개 -> 2개의 파티션은 각각 하나의 컨슈머에 할당되고 남은 하나의 컨슈머는 어떤 파티션도 할당받지 못하는 상태 파.. 2022. 12. 31.
카프카 개념 정리(4) - 카프카는 데이터를 어떻게 저장하고 읽어오는가? 이번 시간에는 카프카에서 데이터를 어떻게 저장하고 읽어오는지에 대해서 정리한다. 카프카 개념 정리(4) - 카프카는 데이터를 어떻게 저장하고 읽어오는가? 데이터를 어떻게 저장하는가? 카프카에서는 데이터를 구분하기 위한 단위로 토픽이라는 용어를 사용하고 이곳에 데이터를 저장한다. 토픽의 이름은 249자 미만의 영문, 숫자, . , _ , - 를 조합하여 만들 수 있으며 여러 서비스에서 공통으로 카프카 클러스터를 사용하게 된다면 토픽명으로 구분을 주는 것이 좋다. 그리고 각 토픽은 1개 이상의 파티션으로 나뉘어지며 프로듀서가 보낸 메시지를 파티션에 분산하여 저장하게 된다. 파티면 마다 메시지가 저장되는 위치를 오프셋이라고 한다. 오프셋의 특징으로는 파티션 내에서 유일하고 순차적으로 증가하는 숫자(정수) 형태.. 2022. 12. 28.
카프카 개념 정리(2) - 카프카의 동작 방식 Pub Sub 카프카에 대한 개념을 정리하는 시간을 가지려 한다. 그 두번째로 카프카의 동작 방식과 pub / sub 모델의 대한 장단점과 특징 및 메시징 시스템이란 무엇인지에 대해서 정리한다. 카프카 개념 정리(2) - 카프카의 동작 방식 Pub Sub 카프카 동작 방식 카프카는 메시징 서버로 동작한다. 메시징 시스템이란 메시지라고 불리는 데이터 단위를 퍼블리셔 또는 프로듀서에서 카프카에 토픽이라는 각각의 메시지 저장소에 데이터를 저장하면 섭스크라이버 또는 컨슈머가 원하는 토픽에서 데이터를 가져가는 형식을 말하며 이 처럼 중간에 메시징 시스템 서버를 두고 메시지를 보내고 받는 통신을 Pub/Sub 모델이라고 한다. Pub/Sub 모델이란 Pub/Sub 모델은 비동기 메시징 전송 방식으로 발신자의 메시지에는 수신자가 .. 2022. 12. 22.
카프카 개념 정리(1) - 카프카와 카프카의 탄생 배경 카프카에 대한 개념을 정리하는 시간을 가지려 한다. 그 첫번째로 카프카가 무엇인지 간단한 개념과 카프카가 탄생하게 된 배경에 대해서 정리한다. 카프카에 대한 자세한 설명은 (2)에서 정리한다. 카프카 개념 정리(1) - 카프카와 카프카의 탄생 배경 카프카의 탄생 배경 카프카는 소셜 네트워크 서비스인 링크드인에서 처음 출발한 기술이다. 이러한 기술을 고안해낸것은 링크드인의 서비스가 전 세계적으로 인기가 많아짐에 따라 서비스가 점차 커져가는 과정에서 시스템의 구성도가 매우 복잡해지고 있었다. 그에 따른 복잡도 증가로 인하여 데이터 파이프라인의 관리가 어려워졌고 데이터의 신뢰도 마저 낮아질 수 있다는 점에서 복잡도와 데이터 파이프라인의 관리를 쉽게 할 수 있도록 만든 것이 카프카였다. 아래의 구성도를 두장을 .. 2022. 12. 19.