728x90
반응형

CS/Apache Kafka 5

[Kafka - 03] 프로듀서의 내부 동작 원리와 구현, 중복 없는 전송

프로듀서가 전송하려는 메시지들은 프로듀서의 send() 메소드를 통해 시리얼라이저, 파티셔너를 거쳐 카프카로 전송된다. 먼저 파티셔너가 무엇인지 알아본다. 1. 파티셔너 카프카의 토픽은 성능 향상을 위한 병렬 처리가 가능하도록 하기 위해 파티션으로 나뉘고, 최소 하나 또는 둘 이상의 파티션으로 구성된다. 그리고 프로듀서가 카프카로 전송할 메시지는 해당 토픽 내 각 파티션의 로그 세그먼트에 저장된다. 따라서 프로듀서는 토픽으로 메시지를 보낼 때 해당 토픽의 어느 파티션으로 메시지를 보내야 할지를 결정해야 하는데, 이때 사용하는 것이 바로 파티셔너이다. 프로듀서가 파티션을 결정하는 알고리즘은 기본적으로 메시지(레코드)의 키를 해시 처리해 파티션을 구하는 방식이다. 예상치 못한 많은 양의 메시지가 카프카로 인..

CS/Apache Kafka 2023.08.31

[Kafka - 02] 카프카의 내부 동작 원리와 구현

※ 카프카의 내부 동작 원리와 구현에서 가장 중요한 부분 중 하나는 리플리케이션 동작이다. 리플리케이션에 이어, 리더와 팔로워의 역할과 리더에포크와 복구 동작들을 정리한다. 그 다음 리플리케이션 동작과 관련 있는 컨트롤러와 컨트롤러의 동작, 그리고 로그와 로그 컴팩션에 대해 정리한다. 1. 카프카 리플리케이션 고가용성 분산 스트리밍 플랫폼인 카프카는 무수히 많은 데이터 파이프라인의 정중앙에 위치하는 메인 허브 역할을 한다. 이렇게 중앙에서 메인 허브 역할을 하는 카프카 클러스터가 만약 하드웨어의 문제나 점검 등으로 인해 정상적으로 동작하지 못한다거나, 카프카와 연결된 전체 데이터 파이프라인에 영향을 미친다면 이는 매우 심각한 문제를 초래한다. 이때 안정성을 확보하기 위해 카프카 내부에서는 리플리케이션이라..

CS/Apache Kafka 2023.08.25

[Kafka - 01] 카프카 기본 개념과 구조

※ 카프카를 구성하는 주요 요소 주키퍼(Zookeeper) : 아파치 프로젝트 애플리케이션 이름이다. 카프카의 메타데이터(metadata) 관리 및 브로커의 정상상태 점검(health check)를 담당한다. 카프카(Kafka) 또는 카프카 클러스터(Kafka cluster) : 아파치 프로젝트 애플리케이션 이름이다. 여러 대의 브로커를 구성한 클러스터를 의미한다. 브로커(broker) : 카프카 애플리케이션이 설치된 서버 또는 노드를 말한다. 프로듀서(producer) : 카프카로 메시지를 보내는 역할을 하는 노드를 말하낟. 컨슈머(consumer) : 카프카에서 메시지를 꺼내가는 역할을 하는 클라이언트를 총칭하낟. 토픽(topic) : 카프카는 메시지 피드들을 토픽으로 구분하고, 각 토픽의 이름은 카..

CS/Apache Kafka 2023.08.23

[Kafka - 00] 카프카 개요 및 특징, 구성

00. Kafka란? Kafka는 분산 데이터 스트리밍 플랫폼으로, 대량의 실시간 데이터를 처리하고 저장하는데 사용되는 오픈 소스 솔루션이다. 아파치 카프카(Apache Kafka)라는 이름으로도 잘 알려져 있다. 이는 LinkedIn에서 개발된 후에 아파치 소프트웨어 재단에 기증되어 개발 및 관리되고 있다. Kafka는 다양한 애플리케이션 간에 데이터 스트림을 안정적으로 전달하고, 실시간으로 데이터를 처리, 분석하고 저장하는 데 사용된다. 대표적인 특징으로 높은 처리량, 순서 보장, 적어도 한 번 전송 방식(At least Once), 강력한 파티셔닝, 자연스러운 백프레셔 핸들링, 로그 컴팩션 같은 기능이 존재한다. ▶ 순서 보장 : 이벤트 처리 순서가 보장되면서, 엔티티 간의 유효성 검사나 동시 수정..

CS/Apache Kafka 2023.08.21

Kafka 초기 설정 방법 - (Topic 생성 및 확인, Producer/Consumer 설정)

Zookeeper / Kafka / Producer - Consumer 총 4개의 shell이 필요 실행 순서는 Zookeeper 실행 Kafka 실행 Producer Message 발행 Consumer Message 수신 ① Zookeeper 실행 - Kafka 파일이 있는 곳으로 이동하여 아래와 같은 명령어를 통해 실행 ./bin/zookeeper-server-start.sh ./config/zookeeper.properties → port가 0.0.0.0:2181로 실행된 것을 확인할 수 있다. ② Kafka Server 실행 - Kafka 파일이 있는 곳으로 이동하여 아래와 같은 명령어를 통해 실행 ./bin/kafka-server-start.sh ./config/server.properties ..

CS/Apache Kafka 2023.05.08
728x90
반응형