Apache Kafka-기초

Kafka에 깊이 들어가기 전에 주제, 브로커, 생산자 및 소비자와 같은 주요 용어를 알아야합니다. 다음 다이어그램은 주요 용어를 설명하고 표는 다이어그램 구성 요소를 자세히 설명합니다.

위의 다이어그램에서 주제는 3 개의 파티션으로 구성됩니다. 파티션 1에는 두 개의 오프셋 요소 0과 1이 있습니다. 파티션 2에는 네 개의 오프셋 요소 0, 1, 2 및 3이 있습니다. 파티션 3에는 하나의 오프셋 요소 0이 있습니다. 복제본의 ID는이를 호스팅하는 서버의 ID와 동일합니다.

주제의 복제 요소가 3으로 설정된 경우 Kafka는 각 파티션의 동일한 복제본 3 개를 만들고 클러스터에 배치하여 모든 작업에 사용할 수 있도록합니다. 클러스터의로드 균형을 맞추기 위해 각 브로커는 이러한 파티션 중 하나 이상을 저장합니다. 여러 생산자와 소비자가 동시에 메시지를 게시하고 검색 할 수 있습니다.

S. 아니 구성 요소 및 설명
1

Topics

특정 범주에 속하는 메시지 스트림을 주제라고합니다. 데이터는 주제에 저장됩니다.

주제는 파티션으로 분할됩니다. 각 주제에 대해 Kafka는 최소 하나의 파티션을 유지합니다. 이러한 각 파티션에는 순서가 변경되지 않는 순서로 메시지가 포함됩니다. 파티션은 동일한 크기의 세그먼트 파일 세트로 구현됩니다.

2

Partition

토픽은 많은 파티션을 가질 수 있으므로 임의의 양의 데이터를 처리 할 수 ​​있습니다.

Partition offset

분할 된 각 메시지에는 offset 이라는 고유 한 시퀀스 ID가 있습니다 .

4

Replicas of partition

복제본은 파티션의 백업 일뿐 입니다. 복제본은 데이터를 읽거나 쓰지 않습니다. 데이터 손실을 방지하는 데 사용됩니다.

5

Brokers

  • 브로커는 게시 된 데이터를 유지 관리하는 간단한 시스템입니다. 각 브로커에는 토픽 당 0 개 이상의 파티션이있을 수 있습니다. 토픽에 N 개의 파티션이 있고 N 개의 브로커가있는 경우 각 브로커는 하나의 파티션을 갖게됩니다.

  • 한 토픽에 N 개의 파티션이 있고 N 개 이상의 브로커 (n + m)가있는 경우 첫 번째 N 개의 브로커에는 하나의 파티션이 있고 다음 M 개의 브로커에는 해당 특정 토픽에 대한 파티션이 없다고 가정합니다.

  • 한 토픽에 N 개의 파티션이 있고 N 개 (nm) 미만의 브로커가있는 경우 각 브로커는 파티션을 공유하는 하나 이상의 파티션을 갖게됩니다. 이 시나리오는 브로커 간의로드 분배가 동일하지 않기 때문에 권장되지 않습니다.

6

Kafka Cluster

하나 이상의 브로커가있는 Kafka를 Kafka 클러스터라고합니다. Kafka 클러스터는 다운 타임없이 확장 할 수 있습니다. 이러한 클러스터는 메시지 데이터의 지속성과 복제를 관리하는 데 사용됩니다.

7

Producers

생산자는 하나 이상의 Kafka 주제에 대한 메시지 게시자입니다. 생산자는 Kafka 중개인에게 데이터를 보냅니다. 생산자가 브로커에 메시지를 게시 할 때마다 브로커는 메시지를 마지막 세그먼트 파일에 추가하기 만하면됩니다. 실제로 메시지는 파티션에 추가됩니다. 생산자는 자신이 선택한 파티션으로 메시지를 보낼 수도 있습니다.

8

Consumers

소비자는 브로커에서 데이터를 읽습니다. 소비자는 하나 이상의 주제를 구독하고 브로커에서 데이터를 가져와 게시 된 메시지를 소비합니다.

9

Leader

리더 는 주어진 파티션에 대한 모든 읽기 및 쓰기를 담당하는 노드입니다. 모든 파티션에는 리더 역할을하는 하나의 서버가 있습니다.

10

Follower

리더 지시를 따르는 노드를 팔로어라고합니다. 리더가 실패하면 추종자 중 한 명이 자동으로 새 리더가됩니다. 팔로어는 일반 소비자 역할을하고 메시지를 가져오고 자체 데이터 저장소를 업데이트합니다.