Notice
Recent Posts
Recent Comments
Link
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
Tags more
Archives
Today
Total
관리 메뉴

어? 이게 되네

Kafka 본문

WEB

Kafka

토끼귀에진주귀걸이 2022. 12. 11. 23:58

1. Kafka란?

Kafka는 Pub-Sub 모델의 메시지 큐이다. 분산환경에 특화되어있는 특징을 가지고 있다.

한마디로 정의하자면, 분산된 메시지 스트리밍 플랫폼

 

2. 구성요소

카프카의 대략적인 구조

2.1 Event

Event는, kafka에서 Producer와 Consumer가 데이터를 주고 받는 단위다. 지금부터 이벤트 또는 메시지로 표기하겠다.

 

2.2 Producer

Producer는 kafka에 이벤트를 게시(post)하는 클라이언트 어플리케이션을 의미한다.

2.3 Consumer

Consumer는 이러한 Topic을 구독하고 이로부터 얻어낸 이벤트를 처리하는 클라이언트 어플리케이션이다.

2.4 Topic

이벤트가 쓰이는 곳. Producer는 이 Topic에 이벤트를 게시한다. 그리고 Consumer는 Topic으로 부터 이벤트를 가져와 처리한다. Topic은 파일시스템의 폴더와 유사하며, 이벤트는 폴더안의 파일과 유사하고

Topic에 저장된 이벤트는 필요한 만큼 다시 읽을 수 있습니다.

2.5 Partition

Topic는 여러 Broker에 분산되어 저장되며, 이렇게 분산된 Topic을 Partition이라고 합니다. 어떤 이벤트가 Partition에 저장될지는 이벤트의 key(키)에 의해 정해지며, 같은 키를 가지는 이벤트는 항상 같은 Partition에 저장됩니다.

Kafka는 Topic의 Partition에 지정된 Consumer가 항상 정확히 동일한 순서로 Partition의 이벤트를 읽을것을 보장합니다.

 

토픽과 파티션

3. Kafka의 주요 개념 - Partition 위주

파티션과 오프셋, 메시지 순서
여러 파티션과 프로듀서
여러 파티션과 컨슈머

메세지는 지정된 Topic에 전달된다. Topic은 다시 여러 Partition으로 나뉠 수도 있다. 위 그림에서 각 파티션의 한칸한칸은 로그라고 칭하고 메시지는 로그에 순차적으로 append 된다. 그리고 이 메시지의 상대적인 위치를 offset이라고 칭한다.

 

메시징 시스템은 Broker에서 소비된 메시지에 대한 메타데이터를 유지한다. 즉, 메시지가 Consumer에게 전달되면 Broker는 이를 로컬에 기록하거나, 소비자의 승인을 기다린다.

 

Commit과 Offset

Consumer의 poll()은 이전에 commit한 offset이 존재하면, 해당 offset 이후의 메시지를 읽어오게 되고, 또 읽어온 뒤, 마지막 offset을 commit을 한다. 이어서 poll()이 실행되면 방금전 commit한 offset이후의 메시지를 읽어와 처리하게 된다.

 

참고

Kafka - Kafka란? (Kafka의 구조와, 주요개념) (tistory.com)

 

Kafka - Kafka란? (Kafka의 구조와, 주요개념)

Apache Kafka Apache Kafka의 각 구성요소와 구성요소들의 주요 개념을 알아보도록 하겠습니다. 어떤 기술의 특성을 이해하고, 구성요소를 이해하는것은, 해당 기술을 이용해 특정 기능을 구현할때 매

galid1.tistory.com

kafka 조금 아는 척하기 1 (개발자용) - YouTube

 

근데 보통 카프카에 무슨 메시지를 담아 소통하는 걸까 궁금..

아직 왜 쓰는지 와닿지 않는다