전체 글 (16) 썸네일형 리스트형 [Kafka] Spring Kafka commit (5) 리스너 타입레코드 리스너(MessageListener)단 1개의 레코드 처리스프링 카프카 컨슈머의 기본 리스너 타입배치 리스너(BatchMessageListener)한 번에 여러 개의 레코드 처리 Acknowledging 이 붙은 리스너Manual Commit 을 사용하는 경우 (AcksMode: MANUAL, MANUAL_IMMEDIATE)ConsumerAware 가 붙은 리스너KafkaConsumer 인스턴스에 직접 접근하여 컨트롤하고 싶을 때 RecordListener - Record 인스턴스 단위로 프로세싱Listener생성 메서드 파라미터DescMessageListeneronMessage(ConsumerRecord data)onMessage(V data)오토 커밋 또는 컨슈머 컨테이너의 A.. [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하고 해싱 결과를 이용하여 파티션 선택만약 특정 메시지의 키에 따라 들어온 순서가 중요한 서비스라면, 키.. 이전 1 2 3 4 5 6 다음