Study/kafka 3

카프카 프로듀서, 컨슈머 기본 동작

프로듀서 기본 동작 프로듀서는 카프카의 토픽으로 메시지를 전송하는 역할을 담당한다. 프로듀서의 디자인은 아래 다이어그램과 같다. ProducerRecord는 카프카로 전송하기 위한 실제 데이터 topic, partition, key, value로 구성 카프카는 특정 토픽으로 값(메시지)을 전달하기 때문에 topic/value는 필수값. 특정 파티션을 지정하기 위한 레코드의 파티션과 정렬을 위한 키는 선택사항 레코드는 프로듀서의 send() 메서드를 통해 serializer -> partitioner를 거친다. 프로듀서 레코드가 파티셔너를 지정했다면 파티셔너는 아무 동작도 하지 않고 지정된 파티셔너로 레코드를 전달함. 파티션을 지정하지 않은 경우 키를 가지고 파티션을 선택해 레코드를 전달한다. 이때 기본적..

Study/kafka 2023.02.20

카프카 용어

kafka 카프카 또는 카프카 클러스터. 아파치 프로젝트 애플리케이션 이름. 여러 대의 브로커를 구성한 클러스터를 의미한다. broker 카프카 애플리케이션이 설치된 서버 또는 노드 producer 카프카로 메시지를 보내는 역할을 하는 클라이언트를 총칭한다. consumer 카프카 애플리케이션이 설치된 서버 또는 노드 message 프로듀서가 브로커로 전송하거나 컨슈머가 읽어가는데이터 조각 topic 카프카는 메시지 피드를 토픽으로 구분하고, 각 토픽의 이름은 카프카 내에서 고유하다. partition 하나의 토픽이 한 번에 처리할 수 있는 한계를 높이기 위해 토픽 하나를 여러 개로 나눠 병렬 처리가 가능하게 만든 것 토픽은 논리적 개념이고 물리적으로 저장되는 곳은 파티션임. 토픽은 최소 하나의 파티션을..

Study/kafka 2023.02.19

카프카 기본

기본 분산 시스템 분산 시스템은 네트워크상에서 연결된 컴퓨터들의 그룹. 단일 시스템이 갖지 못한 높은 성능이 목표 성능 뿐 아니라 하나의 서버 또는 노드 등에 장애가 발생할 때 다른 서버/노드가 대신 처리하므로 장애 대응 면에서도 탁월 부하가 높은 경우 확장도 용이하다. 카프카 역시 마찬가지. 최초 구성한 클러스터 리소스가 한계치에 도달했을 때, 브로커를 추가하는 방식으로 확장 가능하다. (이미 메시지가 들어오는 상태에서 줄이는 것도 쉽게 가능한가?) 페이지 캐시 다른 메시징 시스템은 메시지를 전송하고 나면 메시지를 삭제함. 아직도 그런지 모르겠음. 2018에 나온 카프카, 데이터 플랫폼의 최강자는 그렇게 설명했음. 카프카는 디스크에 세그먼트 형식으로 메시지를 저장함. 디스크에 저장하기 때문에 어떤 이유..

Study/kafka 2023.02.19