- Kafka 12023년 08월 16일
- starryeye
- 작성자
- 2023.08.16.:02
공부한 개념을 한 문장씩 쭉 세워본다.
카프카는 각각의 Application 끼리 연결하여 데이터를 처리하는 것이 아니라..
연결하고 싶은 수많은 두개의 Application 쌍 사이에서 동작하는 하나의 데이터 처리기이다. (중앙 집중화)
연결하고 싶은 두개의 Application 에서..
메시지를 보내는 쪽은 Producer, 메시지를 받는 쪽은 Consumer 이다.
카프카의 토픽은 RDBMS 의 Table 개념이다.
하나의 토픽에는 여러 파티션이 존재한다.
파티션 내부 구조는 메시지 큐와 동일한 FIFO 구조이다.
하나의 메시지는 파티션 한개에 보내지게 된다.
Application 에서는 Kafka 토픽만 신경 써주면 된다.
파티션은 신경 안써도 카프카가 알아서 처리해준다.
많은 양의 데이터를 송수신할 때 맺어지는 네트워크 비용은 무시할 수 없으므로..
많은 양의 데이터를 묶어서 한번에 송수신하는 옵션이 존재한다. (배치 개념)
토픽은 컨슈머 그룹과 매칭된다.
따라서, 파티션은 컨슈머와 매칭된다.
파티션이 물리적으로 컨슈머 보다 많다면
컨슈머 하나가 파티션 여러개를 책임지는 상황이 있을 수 있다.
동일한 목적을 띈 메시지를 하나의 토픽내의 여러 파티션에 고르게 분배하면,
동일한 컨슈머 그룹내의 여러 컨슈머가 각각 매칭되어있는 파티션으로 부터 메시지를 처리할 수 있다. (병렬성)
카프카는 기본적으로 여러개의 브로커로 이루어진 클러스터 형태로 운용된다.
각각의 브로커는 하나의 독립적인 프로세서이다. (인스턴스, 독립 서버)
Producer 가 메시지를 클러스터 형태의 카프카로 보내면 여러개의 브로커에 모두 메시지가 적재된다. (고가용성)
브로커는 당연하게도 서버 스팩이 존재하므로 데이터 처리량의 한계가 존재한다. (성능적 한계)
그래서 클러스터형태의 카프카는 가변적으로 브로커 개수를 늘릴 수 있다. (스케일 아웃)
반대도 가능하다. (스케일 인)
카프카는 전송 받은 데이터를 메모리에 저장하지 않고 파일 시스템에 저장한다. (영속성)
카프카에서 레코드란 메시지가 들어온 순서를 의미한다.
카프카에서는 레코드 하나당 timestamp 가 존재한다.
다음글이전글이전 글이 없습니다.댓글