Apache Kafka

Apache Kafka는 Linkedin의 엔지니어인 제이 크리스토퍼(Jay Kreps), 준 뉴맨(Jun Rao), 나헌 샤르마(Neha Narkhede)가 개발한 분산 스트리밍 플랫폼입니다. 이 프로젝트는 2010년에 시작되었고, LinkedIn 내에서 다양한 데이터 파이프라인의 요구를 충족시키기 위해 개발되었습니다.

이후 2011년에 오픈소스로 공개되었으며, 2012년에는 아파치 소프트웨어 재단(ASF, Apache Software Foundation)에 기증되어 Apache Kafka로 등록되었습니다. Apache Kafka는 대규모의 실시간 데이터 스트리밍 및 메시징을 지원하는 플랫폼으로 널리 사용되고 있습니다.

LinkedIn에서 개발된 Apache Kafka는 주로 대규모 실시간 데이터 스트리밍을 지원하기 위해 만들어졌습니다. LinkedIn은 다양한 유형의 데이터를 처리하고 분석해야 했는데, 이를 위해서는 확장 가능하고 내결함성 있는 데이터 파이프라인이 필요했습니다. 기존의 메시징 시스템은 LinkedIn의 요구를 완전히 충족시키기 어려웠고, 이에 따라 LinkedIn 엔지니어들은 새로운 솔루션을 찾아야 했습니다.

이러한 도전에 대응하고자 LinkedIn에서는 다음과 같은 목표를 가지고 Kafka를 개발하게 되었습니다:

  1. 확장성: 대량의 데이터 스트림을 처리할 수 있는 확장 가능한 시스템이 필요했습니다. Kafka는 수평 확장이 가능하며, 클러스터를 구축하여 데이터 처리량을 쉽게 늘릴 수 있습니다.
  2. 내결함성: 데이터 손실 없이 안정적인 데이터 전달이 중요했습니다. Kafka는 복제와 파티션 분산 등의 메커니즘을 통해 내결함성을 제공합니다.
  3. 실시간 처리: 실시간으로 데이터를 처리하고 분석하는 데 초점을 맞췄습니다. Kafka는 낮은 지연 시간과 고성능을 제공하여 실시간 분석에 적합합니다.
  4. 다양한 데이터 유형: 다양한 종류의 데이터(로그, 이벤트, 메트릭 등)를 처리하기 위한 유연한 데이터 모델이 필요했습니다. Kafka는 다양한 데이터 유형을 처리할 수 있는 구조를 제공합니다.
  5. 데이터 유실 방지: 데이터의 무결성과 보존이 중요했습니다. Kafka는 데이터의 지속성을 보장하여 데이터 유실을 방지합니다.

종합적으로 말하면, LinkedIn은 데이터 파이프라인의 요구 사항을 충족시키기 위해 데이터 스트리밍의 복잡성과 규모에 대응할 수 있는 효과적인 솔루션으로 Kafka 를 개발하게 되었습니다.

Tag Archive for: Apache Kafka