Everything You Should Know About 아파치 카프카

1.4 조 매일 메시지를 관리 하기 위해 링크드 인에 의해 만들어진 내부 시스템으로 시작. 그러나 오늘날에는 다양한 비즈니스 요구 사항을 충족할 수 있는 오픈 소스 데이터 스트리밍 시스템입니다.

아파치 카프카는 무엇입니까?

아파치 카프카는 실시간으로 스트리밍 데이터를 처리하고 수집하도록 설계된 개방형 데이터 저장소입니다. 스트리밍 데이터는 일반적으로 데이터 레코드를 동시에 보내는 다양한 데이터 원본에 의해 지속적으로 생성됩니다. 따라서 스트리밍 플랫폼은 이러한 지속적인 데이터 흐름에 대처하고 데이터를 점진적으로 그리고 순서대로 처리해야 합니다.

세 가지 주요 목적을 가지고 있습니다.

  • 레코드 스트림 만들기 및 구독
  • 레코드가 생성된 순서대로 레코드 스트림을 효과적으로 저장합니다.
  • 레코드를 실시간으로 스트림으로 처리합니다.

Apache Kafka는 주로 데이터 스트림에 적응할 수 있는 애플리케이션뿐만 아니라 실시간 스트리밍 데이터 파이프라인을 만드는 데 사용됩니다. 스토리지, 메시징 및 스트림 처리를 혼합하여 실시간 및 기록 데이터의 저장 및 분석을 지원합니다.

아파치 카프카를 사용하려면 왜?

Apache Kafka는 실시간으로 스트리밍되는 데이터 및 애플리케이션을 위한 실시간 스트리밍 파이프라인을 만들 수 있습니다. 데이터 파이프라인은 한 장치와 다음 장치 간에 데이터를 처리하고 전송할 수 있으며 스트리밍 앱을 데이터 스트림을 사용하는 앱으로 설명할 수 있습니다. 예를 들어 사용자 활동에서 데이터를 가져와 사용자가 실시간으로 사이트를 탐색하는 방법을 모니터링하는 데이터 파이프라인을 개발하려는 경우 아파치 카프카는 스트리밍 데이터를 저장하고 수집하며 데이터 파이프라인을 실행하는 응용 프로그램에 판독값을 제공하는 데 사용됩니다. Kafka는 또한 두 앱 간의 통신을 처리하고 용이하게 하는 인프라 역할을 하는 메시지 브로커로 자주 활용됩니다.

카프카 기능의 배후과정은 무엇입니까?

Kafka는 대기열 및 게시 구독을 하는 두 개의 메시징 모델을 통합하여 두 사용자 모두의 주요 이점을 제공합니다. 큐잉을 통해 데이터를 소비자의 여러 인스턴스에 분산시켜 매우 유연하게 사용할 수 있습니다. 그러나 기존 큐는 다중 구독자가 아닙니다. 게시 구독의 접근 방식은 다중 구독자입니다. 그러나 모든 메시지가 각 구독자에게 전달되므로 다른 작업자 프로세스에 작업을 전파할 수 없습니다. 아파치 카프카는 분할된 로그 모델을 사용하여 이러한 두 솔루션을 모두 연결합니다. 로그는 정렬된 레코드 시퀀스입니다. 로그는 다른 구독자에 해당하는 파티션 또는 세그먼트로 나뉩니다. 비슷한 주제에 대한 구독자가 많을 수 있으며 각 항목에는 더 큰 용량을 허용하는 별도의 부서가 할당됩니다. 또한 Kafka의 모델은 재생가능성을 허용하므로 데이터 스트림을 읽는 여러 독립 응용 프로그램이 자체 속도로 독립적으로 작동할 수 있습니다.

아파치 카프카의 방법의 장점

Ø 확장성

Kafka의 분할 된 로그 모델을 사용하면 정보를 여러 서버에 분산할 수 있으므로 한 서버에 수용 할 수있는 것 이상으로 확장 할 수 있습니다.

Ø 효율성

Kafka는 대기 시간이 매우 낮은 데이터 스트림 분리기입니다. 따라서 효율성이 매우 높습니다.

Ø 견고함

파티션은 여러 서버에 복제되고 배포됩니다. 또한 데이터는 디스크에 기록됩니다. 이렇게 하면 서버의 오류로부터 보호되어 데이터를 강력하고 신뢰할 수 있습니다.

reference :

아파치 카프카(Apache Kafka) 아키텍처 및 동작 방식

아파치 카프카의 특징