해당 시리즈의 경우, 데브원영님의 유튜브와 아파치 카프카 애플리케이션 프로그래밍 with 자바라는 책을 기반으로 작성된 글입니다.데브원영님 유튜브 링크https://www.youtube.com/c/%EB%8D%B0%EB%B8%8C%EC%9B%90%EC%98%8
kafka가 있기 전까지는 단방향 통신을 통해 source application에서 target application으로 연동하는 코드를 작성하였고, 아키텍처가 복잡하지 않아 운영에 큰 문제가 없었다. 하지만 시간이 지남에 따라 source 및 target 애플리케이션 수가 증가하였고, 이로 인해 파이프라인 개수가 많아지면서 코드 및 버전관리에 한계가 생기...
Kafka가 데이터 파이프라인으로 적합한 이유는 아래와 같다. 높은 처리량 프로듀서가 브로커에게 데이터를 보낼 때, 컨슈머가 브로커에게 데이터를 받을 때 모두 배치형식으로 이루어진다. 대량의 데이터를 송수신할 때 네트워크 비용은 무시할 수 없는 규모가 되며, 동일한 양의 데이터를 보낼 때 통신횟수를 줄여 동일 시간 내에 더 많은 데이터를 전송할 수 있다....
Kafka tutorial을 위해 책에서는 EC2를 이용하였으나, Docker를 이용해서 진행하고자 한다. Kafka with Docker Docker로 amazon linux 접속 Java 설치 아래와 같이 나오면 성공 Kafka 설치 및 실행 최근 버전을 좋아하므로... 최근 버전으로 진행해보고자 한다.(물론 production에서는 stabl...
Kafka Broker 카프카 클라이언트와 데이터를 주고받기 위해 사용하는 주체이자, 데이터를 분산 저장하여 장애가 발생하여도 안전하게 사용할 수 있도록 도와주는 애플리케이션 브로커 서버 1대로도 기본 기능이 실행되지만, 데이터를 안전하게 보관하고 처리하기 위해 3대 이상의 브로커 서버를 1개의 클러스터로 묶어서 운영 카프카 클러스터로 묶인 브로커들은 ...
Topic 토픽은 카프카에서 데이터를 구분하기 위해 사용하는 단위로 데이터가 들어갈 수 있는 공간이라고 보면 된다. 토픽은 여러개 생성 가능하며, 약간 데이터베이스의 테이블 또는 파일 시스템의 폴더와 같은 느낌이라고 볼 수 있다. 토픽은 이름을 가질 수 있으며, 무슨 데이터를 담는지 명확하게 명시해야 유지보수에 도움이 된다. 토픽 이름의 경우 데이터의 얼굴...
해당 문서의 경우, 책에서는 모두 java로 짜여져 있으나, 작성자의 경우 python을 주 언어로 사용하기 때문에 해당 책의 코드를 모두 python으로 변경했습니다. > > python version : python 3.8.13 Kafka client 카프카 클라이언트 라이브러리를 사용하여 카프카 클러스터에 명령을 내리거나 데이터를 송수신을 하며, ...
Code의 경우, Python을 이용하여 컨버팅하려고 하였으나, faust에서 Null 키에 대해 오류가 많이 발생하여 우선은 코드 변환 패스 카프카 스트림즈 카프카 스트림즈는 토픽에 적재된 데이터를 상태/비상태 기반으로 실시간 변환하여 다른 토픽에 적재하는 라이브러리이다. 컨슈머와 프로듀서의 조합으로 스트림즈 제공하는 기능과 유사하게 만들 수는 있으나,...