Apache Kafka 튜토리얼: 소개, 개념, 워크플로, 도구, 애플리케이션

게시 됨: 2020-03-10

목차

소개

메시징 시스템으로 Kafka의 인기가 높아짐에 따라 많은 회사에서 Kafka 기술에 대한 충분한 지식을 갖춘 전문가를 요구하며 Apache Kafka Tutorial 이 유용한 곳입니다. 데이터 수집 및 분석을 위한 메시징 시스템이 필요한 빅데이터 영역에서는 엄청난 양의 데이터가 사용됩니다.

Kafka는 향상된 처리량, 고유한 분할 및 복제, 내장된 내결함성을 갖춘 기존 메시지 브로커를 효율적으로 대체하므로 대규모 메시지 처리 애플리케이션에 적합합니다. Apache Kafka Tutorial 을 찾고 있었다면 이 기사가 적합합니다.

Apache Kafka 자습서 의 주요 내용

  • 메시징 시스템의 개념
  • Apache Kafka에 대한 간략한 소개
  • Kafka 클러스터 및 Kafka 아키텍처와 관련된 개념
  • Kafka 메시징 워크플로에 대한 간략한 설명
  • 중요한 Kafka 도구 개요
  • Apache Kafka의 사용 사례 및 애플리케이션

추가 정보: 초보자를 위한 Apache Spark 스트리밍 자습서

메시징 시스템에 대한 간략한 개요

메시징 시스템의 주요 기능은 한 응용 프로그램에서 다른 응용 프로그램으로 데이터를 전송할 수 있도록 하는 것입니다. 이 시스템은 애플리케이션이 데이터 공유 및 전송 과정에서 중단되지 않고 데이터에만 집중할 수 있도록 합니다. 메시징 시스템에는 두 가지 종류가 있습니다.

1. 포인트 투 포인트 메시징 시스템

이 시스템에서 메시지를 생성하는 사람을 발신자라고 하고 메시지를 소비하는 사람을 수신자라고 합니다. 이 도메인에서 메시지는 대기열이라는 대상을 통해 교환됩니다. 발신자 또는 생산자는 대기열에 메시지를 생성하고 대기열의 수신자는 메시지를 사용합니다.

원천

2. 발행-구독 메시징 시스템

이 시스템에서 메시지의 생산자는 게시자라고 하고 메시지를 소비하는 사람은 구독자입니다. 그러나 이 도메인에서 메시지는 주제로 알려진 대상을 통해 교환됩니다. 게시자는 주제에 대한 메시지를 생성하고 주제를 구독하면 구독자는 주제의 메시지를 소비합니다. 이 시스템은 메시지 브로드캐스트를 허용합니다(둘 이상의 구독자가 있고 각 구독자는 특정 주제에 게시된 메시지 사본을 얻음).

원천

Apache Kafka – 소개

Apache Kafka는 게시-구독(pub-sub) 메시징 시스템을 기반으로 합니다. pub-sub 메시징 시스템에서 게시자는 메시지 생산자이고 구독자는 메시지 소비자입니다. 이 시스템에서 소비자는 구독된 주제의 모든 메시지를 사용할 수 있습니다. pub-sub 메시징 시스템의 이러한 원칙은 Apache Kafka에서 사용됩니다.

또한 Apache Kafka는 분산 메시징 개념을 사용하므로 메시징 시스템과 애플리케이션 간에 비동기식 메시지 대기열이 있습니다. 대용량 데이터를 처리할 수 있는 강력한 대기열을 통해 Kafka를 사용하면 한 끝점에서 다른 끝점으로 메시지를 전송할 수 있으며 온라인 및 오프라인 메시지 소비에 모두 적합합니다. 안정성, 확장성, 내구성 및 높은 처리량 성능을 결합한 Apache Kafka는 실제 환경에서 대규모 데이터 시스템 단위 간의 통합 및 통신에 이상적입니다.

읽어보기: 빅 데이터 프로젝트 아이디어

원천

Apache Kafka 클러스터의 개념

원천

  1. Kafka 사육사 : 클러스터의 브로커는 사육사에 의해 조정되고 관리됩니다. Zookeeper는 Kafka 시스템에서 새로운 브로커의 존재 또는 브로커의 실패에 대해 생산자와 소비자에게 알리고 오프셋 값에 대해 소비자에게 알립니다. 생산자와 소비자는 사육사로부터 받은 후 다른 브로커와 활동을 조정합니다.
  2. Kafka 브로커: Kafka 브로커는 사육사의 도움을 받아 Kafka 클러스터에 게시된 데이터를 유지 관리하는 시스템입니다. 브로커는 각 주제에 대해 0개 이상의 파티션을 가질 수 있습니다.
  3. Kafka 생산자: 하나 이상의 Kafka 주제에 대한 메시지는 제작자가 게시하고 브로커 승인을 기다리지 않고 브로커에 푸시됩니다.
  4. Kafka 소비자: 소비자는 브로커에서 데이터를 추출하고 하나 이상의 주제에서 이미 게시된 메시지를 사용하고, 바이트 버퍼를 사용할 준비가 되도록 브로커에 비동기식 풀 요청을 발행한 다음 되감거나 건너뛸 오프셋 값을 제공합니다. 모든 파티션 지점.

Kafka 아키텍처의 기본 개념

  1. 토픽 : 생산자가 메시지를 발행하고 소비자가 메시지를 수신하는 논리적 채널입니다. 주제는 복제(복사)할 수도 있고 분할(분할)할 수도 있습니다. 특정 종류의 메시지는 고유한 이름으로 식별할 수 있는 각 주제와 함께 특정 주제에 게시됩니다.
  2. 토픽 파티션: Kafka 클러스터에서 토픽은 파티션으로 분할되고 브로커 간에 복제됩니다. 생산자는 게시된 메시지에 키를 추가할 수 있으며 동일한 키를 가진 메시지는 결국 동일한 파티션에 있게 됩니다. 오프셋이라는 증분 ID는 파티션의 각 메시지에 할당되며 이러한 ID는 파티션 내에서만 유효하며 주제의 파티션 간에는 값이 없습니다.
  3. 리더 및 복제본: 모든 Kafka 브로커에는 각 파티션이 있는 몇 개의 파티션이 있으며, 이는 주제의 리더 또는 복제본(백업)입니다. 리더는 주제를 읽고 쓸 뿐만 아니라 복제본을 새 데이터로 업데이트하는 책임이 있습니다. 어떤 경우든 리더가 실패하면 복제본이 새 리더 역할을 인계받을 수 있습니다.

Apache Kafka의 아키텍처


원천

둘 이상의 브로커가 있는 Kafka를 Kafka 클러스터라고 합니다.Apache Kafka Tutorial 에서는 4가지 핵심 API에 대해 설명합니다 .

  1. 생산자 API: Kafka 생산자 API를 사용하면 애플리케이션에서 하나 이상의 Kafka 주제에 레코드 스트림을 게시할 수 있습니다.
  2. 소비자 API: 소비자 API를 사용하면 애플리케이션에서 하나 이상의 주제에 대해 생성된 레코드의 지속적인 흐름을 처리할 수 있습니다.
  3. 스트림 API: 스트림 API를 사용하면 애플리케이션이 하나 또는 여러 주제의 입력 스트림을 사용하고 하나 이상의 출력 주제에 대한 출력 스트림을 생성할 수 있으므로 애플리케이션이 스트림 프로세서 역할을 할 수 있습니다. 이것은 입력 스트림을 출력 스트림으로 효율적으로 수정합니다.
  4. 커넥터 API: 커넥터 API를 사용하면 재사용 가능한 생산자 및 소비자를 만들고 실행할 수 있으므로 Kafka 주제와 기존 데이터 시스템 또는 애플리케이션 간의 연결이 가능합니다.

게시자-가입자 메시징 도메인의 워크플로

  1. Kafka 생산자는 일정한 간격으로 주제에 메시지를 보냅니다.
  2. Kafka 브로커는 특정 주제에 대해 구성된 파티션에 메시지를 저장하여 파티션 내에서 메시지의 균등한 배포를 보장합니다.
  3. 특정 주제에 대한 구독은 Kafka 소비자가 수행합니다. 소비자가 주제를 구독하면 주제의 현재 오프셋이 소비자에게 제공되고 주제는 사육사 앙상블에 저장됩니다.
  4. 소비자는 정기적으로 Kafka에 새 메시지를 요청합니다.
  5. Kafka는 생산자로부터 메시지를 받는 즉시 소비자에게 메시지를 전달합니다.
  6. 소비자는 메시지를 수신하고 처리합니다.
  7. Kafka 브로커는 메시지가 처리되는 즉시 승인을 받습니다.
  8. 승인을 받으면 오프셋이 새 값으로 업그레이드됩니다.
  9. 소비자가 요청을 중지할 때까지 흐름이 반복됩니다.
  10. 소비자는 언제든지 오프셋을 건너뛰거나 되감고 편의에 따라 후속 메시지를 읽을 수 있습니다.

대기열 메시징 시스템의 워크플로

대기열 메시징 시스템에서 동일한 그룹 ID를 가진 여러 소비자가 주제를 구독할 수 있습니다. 그들은 단일 그룹으로 간주되어 메시지를 공유합니다. 시스템의 작업 흐름은 다음과 같습니다.

  1. Kafka 생산자는 일정한 간격으로 주제에 메시지를 보냅니다.
  2. Kafka 브로커는 특정 주제에 대해 구성된 파티션에 메시지를 저장하여 파티션 내에서 메시지의 균등한 배포를 보장합니다.
  3. 단일 소비자가 특정 주제를 구독합니다.
  4. 새로운 소비자가 동일한 주제를 구독할 때까지 Kafka는 단일 소비자와 상호 작용합니다.
  5. 새로운 소비자가 도착하면 데이터가 두 소비자 간에 공유됩니다. 해당 주제에 대해 구성된 파티션 수가 소비자 수와 같아질 때까지 공유가 반복됩니다.
  6. 소비자 수가 구성된 파티션 수를 초과하면 새 소비자는 추가 메시지를 받지 않습니다. 이 상황은 각 소비자가 최소 하나의 파티션에 대한 자격이 있고 빈 파티션이 없으면 새 소비자가 기다려야 한다는 조건으로 인해 발생합니다.

Apache Kafka의 2가지 중요한 도구

다음으로 이 Apache Kafka Tutorial 에서 "org.apache.kafka.tools.*" 에 패키지된 Kafka 도구에 대해 설명합니다.

1. 복제 도구

더 높은 가용성과 내구성을 부여하는 고급 설계 도구입니다.

  • 주제 생성 도구: 이 도구는 복제 요소와 기본 파티션 수로 주제를 생성하는 데 사용되며 기본 구성표인 Kafka를 사용하여 복제본 할당을 수행합니다.
  • 목록 주제 도구: 이 도구는 주어진 주제 목록에 대한 정보를 나열합니다. 파티션, 주제 이름, 리더, 복제본 및 isr과 같은 필드가 이 도구에 의해 표시됩니다.
  • 파티션 추가 도구: 이 도구는 특정 주제에 대해 더 많은 파티션을 추가할 수 있습니다. 또한 추가된 파티션의 복제본을 수동으로 할당합니다.

2. 시스템 도구

실행 클래스 스크립트는 Kafka에서 시스템 도구를 실행하는 데 사용할 수 있습니다. 구문은 다음과 같습니다.

  • 미러 메이커: 이 도구의 사용은 한 Kafka 클러스터를 다른 클러스터로 미러링하는 것입니다.
  • Kafka 마이그레이션 도구: 이 도구는 Kafka 브로커를 한 버전에서 다른 버전으로 마이그레이션하는 데 도움이 됩니다.
  • 소비자 오프셋 검사기: 이 도구는 특정 주제 세트에 대한 Kafka 주제, 로그 크기, 오프셋, 파티션, 소비자 그룹 및 소유자를 표시합니다.

또한 읽기: Apache Pig 자습서

Apache Kafka의 상위 4가지 사용 사례

이 Apache Kafka Tutorial에서 Apache Kafka의 몇 가지 중요한 사용 사례에 대해 논의해 보겠습니다.

  1. 스트림 처리: Kafka는 내구성이 강하여 스트림 처리 분야에서 사용할 수 있습니다. 이 경우 주제에서 데이터를 읽고 처리한 다음 처리된 데이터를 새 주제에 기록하여 애플리케이션과 사용자가 사용할 수 있도록 합니다.
  2. 메트릭: Kafka는 데이터의 운영 모니터링에 자주 사용됩니다. 통계는 분산 애플리케이션에서 집계되어 운영 데이터의 중앙 집중식 피드를 만듭니다.
  3. 웹사이트 활동 추적: BigQuery 및 Google과 같은 데이터 웨어하우스는 웹사이트 활동을 추적하기 위해 Kafka를 사용합니다. 검색, 페이지 보기 또는 기타 사용자 작업과 같은 사이트 활동은 중앙 주제에 게시되고 실시간 처리, 오프라인 분석 및 대시보드에 액세스할 수 있습니다.
  4. 로그 집계: Kafka를 사용하면 많은 서비스에서 로그를 수집하고 많은 소비자가 표준화된 형식으로 사용할 수 있습니다.

Apache Kafka의 상위 5개 애플리케이션

Kafka가 지원하는 최고의 산업용 애플리케이션은 다음과 같습니다.

  1. Uber: 택시 앱은 엄청난 실시간 처리가 필요하고 엄청난 양의 데이터를 처리해야 합니다. 감사, ETA 계산, 동인 및 고객 매칭과 같은 중요한 프로세스는 Kafka Streams를 기반으로 모델링됩니다.
  2. Netflix: 주문형 인터넷 스트리밍 플랫폼인 Netflix는 이벤트 처리 및 실시간 모니터링을 위해 Kafka 메트릭을 사용합니다.
  3. LinkedIn: LinkedIn은 100,000개의 주제, 700만 개의 파티션 및 4000개 이상의 중개인을 포함하여 매일 7조 개의 메시지를 관리합니다. Apache Kafka는 LinkedIn에서 사용자 활동 추적, 모니터링 및 추적에 사용됩니다.
  4. Tinder: 이 인기 있는 데이트 앱은 콘텐츠 조정, 추천, 사용자 시간대 업데이트, 알림 및 사용자 활성화를 비롯한 여러 프로세스에 Kafka Streams를 사용합니다.
  5. Pinterest: 매달 수십억 개의 핀과 아이디어를 검색하는 Pinterest는 많은 프로세스에 Kafka를 활용했습니다. Kafka Streams는 콘텐츠 인덱싱, 스팸 감지, 권장 사항 및 실시간 광고 예산 계산에 활용됩니다.

결론

Apache Kafka Tutorial 에서 Apache Kafka의 기본 개념, Kafka의 아키텍처 및 클러스터, Kafka 워크플로, Kafka 도구 및 Kafka의 일부 애플리케이션에 대해 논의했습니다. Apache Kafka는 내구성, 확장성, 내결함성, 안정성, 확장성, 복제 및 높은 처리량과 같은 몇 가지 최고의 기능을 갖추고 있어 이 Apache Kafka Tutorial 에서 예시한 것처럼 최고의 산업용 애플리케이션에서 액세스할 수 있습니다 .

빅 데이터에 대해 더 알고 싶다면 PG 디플로마 빅 데이터 소프트웨어 개발 전문화 프로그램을 확인하세요. 이 프로그램은 실무 전문가를 위해 설계되었으며 7개 이상의 사례 연구 및 프로젝트를 제공하고 14개 프로그래밍 언어 및 도구, 실용적인 실습을 다룹니다. 워크샵, 400시간 이상의 엄격한 학습 및 최고의 기업과의 취업 지원.

세계 최고의 대학에서 온라인으로 소프트웨어 개발 과정배우십시오 . 이그 제 큐 티브 PG 프로그램, 고급 인증 프로그램 또는 석사 프로그램을 획득하여 경력을 빠르게 추적하십시오.

데이터 주도 기술 혁명을 주도하다

IIT Bangalore의 빅 데이터 고급 인증 프로그램