Kafkaland에 오신 것을 환영합니다!

(Bartha Bela Tibor) (2020 년 6 월 19 일)

소개

메시지 대기열 또는 스트리밍 플랫폼으로 작업 한 적이 있다면 Kafka 는 확인해야 할 항목입니다. 실시간 데이터 스트리밍에 가장 적합합니다.

애플리케이션에 Kafka를 고려하는 경우 Kafka는 다음 사용 사례에 가장 적합합니다.

  • Pub / 서브 메시징
  • 스트림 처리
  • 데이터 저장

우선 Kafka를 터치하기 전에 다음 사항을 알아야합니다. Kafka는 엄청나게 빠르며 당신은 엄청난 자유를 가지고 있으며 다른 메시지 대기열 플랫폼에서 올 때 잘못되기 쉽습니다.

이 기사에서는 Kafka로 일을 올바르게 수행하는 데 중점을 둘 것입니다.

Key 개념 :

  • 메시지 : 데이터 단위
  • 주제 : 데이터 채널
  • 파티션 : 주제는 더 많은 파티션을 가질 수 있습니다.
  • 오프셋 : 파티션에서 메시지의 위치
  • 생산자 : 애플리케이션이 특정 주제에 데이터를 게시하도록 허용합니다.
  • 소비자 : 애플리케이션이 하나 이상의 주제에서 데이터를 사용할 수 있습니다. 하나의 주제에 여러 소비자가있을 수 있습니다. 소비자는 주제의 파티션을 얼마든지 구독 할 수 있습니다.
  • 소비자 그룹 : 소비자는 다른 주제에서 읽을 때 동시에 주제에서 읽는 소비자 그룹으로 구성 될 수 있습니다. 파티션
  • 브로커 : 주제 저장소 관리
  • 클러스터 : 여러 브로커를 포함하는 여러 브로커
  • 리더 / 복제본 : 각 브로커는 주제의 여러 파티션을 포함하며, 각 파티션은 리더 또는 복제본이 될 수 있습니다. 주제에 대한 모든 쓰기 및 읽기는 복제본 업데이트를 조정하는 리더에서 수행됩니다. 리더가 실패하면 복제본이 리더 역할을 맡습니다.

Kafka 기본 사항에 대한 자세한 내용은 여기 에서 찾을 수 있습니다.

Node.js를 사용한 기본 사항

이 소개에서는 Node.js를 사용하고 기본 생산자와 소비자를 만듭니다.

먼저, 여기 에 설명 된대로 Kafka를 로컬로 설치하게됩니다.

이 기사에서는 브로커가 하나만 있다고 가정합니다.

애플리케이션이 실행되기 전에 주제가 생성됩니다. 아래를 참조하세요.

이 소개를 작성하는 현재 NodeJS와 함께 사용할 안정적인 패키지는 3 개입니다.

  1. Node-rdkafka
  2. KafkaJS
  3. Kafka-node

이 모든 작업은 비슷한 방식으로 작동합니다. 소개에서는 node-rdkafka를 사용합니다. ( npm install node-rdkafka )

기본 설정으로 Kafka를 로컬에 설치하고 브로커 하나를 시작했다고 가정하면 간단한 생산자와 소비자를 만들 수 있습니다.

수동으로 주제 만들기 :

제작자를 만들고 이벤트를 생성합니다.

소비자 생성 및 이벤트 소비 :

이는 유동 소비자의 예입니다. 주제에 나타나는 이벤트를 소비합니다. 또 다른 가능성은 consumer.consume (number)에 매개 변수로 소비 할 이벤트 수를 지정하여 흐름이없는 소비자를 사용하는 것입니다. 이 경우 주제에 사용되지 않은 메시지가 여러 개있는 후에 메시지를 받게됩니다.

커밋

Kafka는 안전을 위해 설계되었으므로 소비자는 메시지를 사용 된 것으로 표시 할 수 있습니다. 약속 . 기본적으로 node-rdkafka는 자동 커밋 을 수행하며 수동으로 수행 할 수도 있습니다. consumer.commit () 또는 consumer.commitMessage (message) .

소비자의 연결이 끊어진 경우 다른 소비자가 커밋 된 메시지에서 계속할 수 있습니다.

Kafkaland에 오신 것을 환영합니다! 즐거운 시간 되십시오!

이것은 4 개의 기사 시리즈 중 첫 번째입니다. 마이크로 서비스, 챗봇 및 핀 테크 프로젝트에 대한 Kafka 사용의 특정 사례를 추적합니다. 예!

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다