본문 바로가기

전체 글

(17)
[Kafka] commit 이해하기 (4) Kafka는 다른 메시지큐와 다른 가장 대표적인 특징을 떠올리면 consumer 가 메시지를 가져가더라도 메시지큐에서 바로 사라지지 않는다는 점이다. 그 덕분에 하나의 로그 메시지를 여러 컨슈머가 다양한 용도로 사용할 수 있다. 이때 문득 고민이 들었다. 메시지큐에서 바로 사라지지 않는다면 메모리는 어떻게 관리되고 있을까, consumer는 자신이 읽은 파티션을 어떻게 구분할까.    Commit깃허브를 다루면서 가장 많이 듣게 되는 용어, commit을 kafka에서도 만나게 된다.깃허브에서 commit 은 add 이후로 깃에 저장하는 단계에서 사용된다.카프카에서 commit 은 메시지 소비 여부를 구분하는 데 사용된다. 컨슈머가 브로커에서 메시지를 poll() 하고 나면 컨슈머 그룹은 카프카에서 불러..
[Kafka] Partition & Replication (3) Kafka 에서 Producer 는 Topic 에 메시지를 보내고 하나의 Topic 은 한개 이상의 Partition 으로 나뉘게 된다.이는 Topic 을 생성하는 시점에 명시할 수 있다.   PartitionTopic 을 분할한 단위Partition 이 여러개일 경우 Producer 가 전송한 메시지 순서는 보장되지 않는다.하지만 Partition 간의 메시지 순서는 보장된다.kafka 메시지에 key를 할당하고, 이 key에 따라 파티션이 선택된다.kafka는 key가 설정되지 않은경우, 메시지는 reound robin 방식으로 파티션을 선택하여 메시지가 전달key가 있다면 key값을 hashing하고 해싱 결과를 이용하여 파티션 선택만약 특정 메시지의 키에 따라 들어온 순서가 중요한 서비스라면, 키..
[Kafka] kafka 내부 구조 (2) 분산 메시징 시스템인 Kafka 의 구조를 들여다보자.      Cluster클러스터는 브로커(Kafka 서버)의 집합체를 말한다. 클러스터를 구분하는 각각의 브로커는 카프카 서버로 불린다.Broker - 메시지 수신 및 저장이벤트 스트리밍 플랫폼밑에서 추가 설명 Topic - 데이터 분류 단위브로커에서 데이터를 관리할 때 기준이 되는 단위다.여러 파티션으로 나뉘어서 데이터를 병렬처리할 수 있다. 리더 파티션 Leader PartitionProducer, Consumer 와 직접 통신하는 파티션읽기, 쓰기 연산팔로워 파티션 Follower Partition데이터 보관리더 파티션에서 전달된 데이터를 복제하여 저장리더 파티션이 속한 브로커에서 장애 발생 시, 팔로워 파티션이 리더 파티션 지위를 가질 수 있다..