Kafka 1

김정용·2024년 8월 19일
0

Today I Learned

목록 보기
12/21

Kafka?

주로 실시간 데이터 피드의 빅데이터 처리를 위해 사용한다.

대용량 데이터를 실시간으로 처리 및 분석할 수 있고, 데이터를 수집하고 이를 통합할 수도 있다.

Kafka는 데이터 손실 없이 안정적으로 데이터를 저장할 수 있다.

장점

Kafka는 데이터를 여러 브로커에 복제해서 저장하므로 신뢰성이 높다.

여러 브로커에 복제 후 저장하게되면 어느 한 브로커가 장애로 데이터가 손실되더라도 나머지 브로커의 데이터가 남아있기 때문에 신뢰성에서 유리하다.

클러스터링을 통해 여러 노드에서 데이터를 분산처리할 수 있다는 장점이 있다.

관리 도구를 통해 상태를 모니터링할 수 있다.

단점

복잡하다.

높은 트래픽 상황에서 오버헤드가 발생할 수 있다.

장점과 단점은 rabbitMQ와 유사한것을 알 수 있다.

구성요소

장점 및 단점과 마찬가지로 구성요소에서 또한 rabbitMQ와 비슷한 모습을 보인다.

첫번째로 kafka를 통해 전달되는 데이터의 단위는 메시지로 동일하다.

차이점이 있다면 kafka의 메시지는 , , 타임스탬프 등으로 이루어져있다.

메시지를 생성하는 역할은 동일하게 프로듀서가 수행한다.

kafka는 rabbitMQ의 큐처럼 토픽 이라는 장소에 메시지들을 저장한다.

추가로 토픽이라는 공간은 파티션으로 작게 쪼개질 수 있으며 병렬처리가 가능하다.

키라는 의미가 새롭게 등장한다.

kafka에서 key는 메시지를 특정 파티션에 할당하는데에 사용된다.

동일한 키를 가진 메시지는 항상 동일한 파티션에 저장된다.
(307호 집 열쇠를 가진 사람은 307호로만 들어갈 수 있듯!)

토픽에서 메시지를 처리하는 역할은 rabbitMQ 와 동일하게 컨슈머가 수행한다.

Kafka 클러스터의 각 서버는 브로커라고 한다. 메시지를 저장 및 전송하는 역할을 한다.

Zookeeper라는 개념이 등장한다.

Kafka를 관리하고 조정하는 서비스라고 생각하면 된다.


추가 공부 : Kafka 2

profile
누군가의 롤모델이 될 때까지😇

0개의 댓글