Apache Kafka 개념 배우기
Apache Kafka 는 실시간 데이터 통합 및 데이터 스트리밍 유스 케이스뿐만 아니라 다양한 일괄처리 워크로드를 위해 많은 회사에서 사용하는 분산 스트리밍 플랫폼입니다.
다음 목록은 일부 Apache Kafka 개념을 정의합니다.
브로커
Apache Kafka는 분배된 메시징 시스템입니다. Kafka 클러스터는 브로커 세트로 구성됩니다. 클러스터에는 최소 세 개의 브로커가 있습니다.
메시지
메시지는 Kafka의 데이터 단위입니다. 각 메시지는 두 파트(키와 값)로 구성된 레코드로 표시됩니다. 키는 일반적으로 메시지에 대한 데이터에 사용되며 값은 메시지의 본문입니다. Kafka에서는 '레코드'라는 용어와 '메시지'라는 용어를 상호 교환적으로 사용합니다.
토픽 및 파티션
각 토픽은 이름 지정된 메시지의 스트림입니다. 토픽은 하나 이상의 파티션으로 구성됩니다. 파티션의 메시지는 오프셋이라고 하는 번호로 정렬됩니다. 브로커에 여러 개의 파티션을 분산하면 토픽의 확장성이 높아집니다.
토픽에 둘 이상의 파티션이 있으면 클러스터에 파티션을 분배하여 처리량을 높이기 위해 병렬로 데이터가 피드될 수 있도록 허용합니다. 또한 파티션의 수는 이용자 간 워크로드 밸런싱에 영향을 줍니다.
자세한 정보는 파티션 리더십을 참조하십시오.
복제
가용성을 향상시키기 위해 각 토픽은 다중 브로커에 복제될 수 있습니다. 각 파티션의 경우 브로커 중 하나는 리더(leader)이며 기타 브로커는 팔로워(follower)입니다.
복제는 팔로워가 리더로부터 반복해서 메시지를 페치함으로써 작동됩니다.
동기화 복제본
파티션 리더를 따르는 팔로워 복제본은 동기화되어 있습니다. 동기화 복제본이 있는 팔로워는 메시지 유실 없이 리더가 될 수 있습니다.
파티션 리더가 실패하는 경우 다른 리더가 팔로워에서 선택됩니다. 모든 복제본은 일반적으로 동기화됩니다. 복제본이 실패 후 복구되는 동안에는 일시적으로 동기화되지 않을 수 있습니다.
생성자
생성자는 하나 이상의 토픽에 메시지를 공개하는 클라이언트 애플리케이션입니다. 생성자는 하나 이상의 토픽에 대해 공개할 수 있으며 선택적으로 데이터를 저장하는 파티션을 선택할 수 있습니다.
또한 프로듀서가 게시하는 메시지에 대한 승인 수준을 선택하여 속도 또는 안정성의 우선순위를 정하도록 프로듀서를 구성할 수도 있습니다.
자세한 정보는 메시지 생성을 참조하십시오.
이용자
이용자는 하나 이상의 토픽에서 메시지를 읽고 처리하는 클라이언트 애플리케이션입니다. 이용자의 현재 위치와 파티션의 최신 메시지 간에 다른 점은 오프셋 지연으로 알려져 있습니다.
시간 경과에 따라 지연이 늘어나면 이는 이용자가 따라갈 수 없다는 신호입니다. 단기적으로는 문제가 되지 않지만 보존 기간이 초과되면 결국 이용자가 메시지를 유실할 수 있습니다.
자세한 정보는 메시지 이용을 참조하십시오.
이용자 그룹
이용자 그룹에는 토픽의 메시지를 처리하기 위해 함께 작업하는 하나 이상의 이용자가 포함되어 있습니다. 단일 파티션의 메시지는 각 그룹에서 하나의 이용자가 처리합니다.
언제든지 각 파티션은 그룹의 한 이용자에게만 지정됩니다. 이 할당은 각 파티션의 메시지가 순서대로 처리되도록 합니다.
이용자보다 많은 파티션이 그룹에 있으면 일부 이용자에게 여러 파티션이 있는 것입니다. 이용자 수가 파티션보다 많으면 일부 이용자에게 파티션이 없는 것입니다.
자세한 정보
자세한 정보는 Apache Kafka 문서를 참조하십시오.