본문 바로가기

Web/Kafka

(10)
[Kafka] Kafka를 편하게 Kafkactl 명령어 Github https://github.com/deviceinsight/kafkactl GitHub - deviceinsight/kafkactl: Command Line Tool for managing Apache Kafka Command Line Tool for managing Apache Kafka. Contribute to deviceinsight/kafkactl development by creating an account on GitHub. github.com 설치 homebrew: # install tap repostory once brew tap deviceinsight/packages # install kafkactl brew install deviceinsight/packages/kafk..
[Kafka] Kafka Connect란? Kafka Connect라는 것에 대해 처음 들어보고 살짝 공부한 뒤 느낀 점을 정리한 글입니다. 정확하지 않은 정보일 수 있습니다. Kafka Connect란? Kafka Connect는 카프카로 작업을 해야하는 경우 데이터 파이프라인 생성 및 반복적인 작업을 줄여주는 역할을 하는 도구입니다. 간단하게 요약하자면 반복적인 작업을 템플릿화하는 도구라고 보입니다. 기존에는 만약 여러 애플리케이션에서 비슷한 Kafka 파이프라인을 구성한다면 어떻게 되는지 보겠습니다. 기존의 방식이라면 바로 위의 그림처럼 각각 거의 동일한 프로듀서를 여러 번 만들고 그림에 나와 있지는 않지만 컨슈머도 동일하게 많은 작업을 요구하게 됩니다. 이는 애플리케이션이 많아질수록 더 부담되는 작업입니다. 이를 해결하기 위해 Kafka ..
Kafka Streams (카프카 스트림즈)에 대해서 https://www.youtube.com/watch?v=vKxhPUUEDmM 이 글은 위의 링크 많이 참조하여 작성하였습니다. 한번 보시면 좋을것 같아요 ㅎㅎ Kafka Streams는 뭘까? 카프카에 대한 정의는 분산 이벤트 스트리밍 플랫폼으로써 프로듀서와 컨슈머를 통해 데이터를 생산하고 받아와서 처리하는곳에 사용해왔습니다. 이 기술은 강력한 성능을 가지고 있고 단순히 메시지를 전달하는 것이 아닌 연속적으로 대용량의 메세지를 처리하는 곳에도 사용해왔었습니다. 이제는 컨슈머로 받아와서 처리하는 것보다 더 빠르고 안전하게 실시간으로 처리할 수 있게 카프카에서 지원해준 것이 Kafka Streams입니다. 간단하게는 어떤 Topic으로 들어오는 데이터를 Consume하여 Kafka Streams에서 제공하..
[kafka] Elastic Stack과 Kafka 실습해보자! - (3)(elk 설치) marrrang.tistory.com/40?category=927204 [kafka] Elastic Stack과 Kafka 실습해보자! - (1)(설치 및 구성) 카프카만 하기엔 아쉬운데? ES도 한번 도전해보자 카프카만 하기엔 시간이 아깝기에 ES도 함께 적용시켜보는 아주아주 간단한 실습을 진행해보려합니다. 우선은 카프카부터 시작해봅시다. 모든 marrrang.tistory.com marrrang.tistory.com/42 [kafka] Elastic Stack과 Kafka 실습해보자! - (2)(produce and consume) https://marrrang.tistory.com/40?category=927204 [kafka] Elastic Stack과 Kafka 실습해보자! - (1)(설치 및 ..
[kafka] Elastic Stack과 Kafka 실습해보자! - (2)(produce and consume) https://marrrang.tistory.com/40?category=927204 [kafka] Elastic Stack과 Kafka 실습해보자! - (1)(설치 및 구성) 카프카만 하기엔 아쉬운데? ES도 한번 도전해보자 카프카만 하기엔 시간이 아깝기에 ES도 함께 적용시켜보는 아주아주 간단한 실습을 진행해보려합니다. 우선은 카프카부터 시작해봅시다. 모든 marrrang.tistory.com 데이터 소통이 있어야 ES도 쓸곳이 생기겠지 앞서서 카프카를 설치했으니 사용을 해보겠습니다. 이번 실습에서는 Spring Boot 프로젝트를 생성하고 간단하게 Kafka로 메세지를 전송해보겠습니다. 1. SpringBoot 프로젝트로 시작 스프링 부트 프로젝트를 생성하고 시작하겠습니다. 이 실습에서 boot 프..
[kafka] 카프카 관련 라이브러리 or API 카프카를 하고 싶은데 너무 귀찮잖아..! 편하게 쓰고 싶다! 실사용에 앞서서 자주 사용하는 라이브러리나 API를 알아봐야겠다고 생각했습니다. 1. Kafka Client Kafka 구조에서 서버와 Application 사이에서 API로서 사용할 수 있는 Kafka Client입니다. Java 외 3rd party library를 제공합니다. (Python, C++ 등) broker 버전과 client 버전의 호환성 확인 필요 Kafka broker 버젼 Java client 호환성 Kafka stream 호환성 Kafka Connect 호환성 0.10.0 0.10.1을 제외 모든 버전 가능 0.10.0 버젼만 가능 0.10.1을 제외 모든 버전 가능 0.10.1 모든 버전 가능 모든 버전 가능 0.10...
[kafka] Elastic Stack과 Kafka 실습해보자! - (1)(설치 및 구성) 카프카만 하기엔 아쉬운데? ES도 한번 도전해보자 카프카만 하기엔 시간이 아깝기에 ES도 함께 적용시켜보는 아주아주 간단한 실습을 진행해보려합니다. 우선은 카프카부터 시작해봅시다. 모든 시작은 설치부터 해야겠죠? 0. 실습 구성 실습은 아래의 준비물들로 진행됩니다. 서버 2대 Java 11 (미리 설치!) Spring Boot 프로젝트 1. 카프카 서버 구성 및 설치 카프카를 하나의 서버에 구성하기에는 실무와 어울리지 않으므로 어떻게든 2개 이상의 서버로 구성해보려 했습니다. 카프카 서버 2대와 zookeeper 서버 1대로 구성을 하려고 합니다. 하지만 서버가 2대밖에 없네요. 그러므로 아래와 같이 구성했습니다. 1번 서버 - kafka broker(1), zookeeper 2번 서버 - kafka b..
[Kafka] 카프카 기초 - 2 1.1. Consumer과 Partition 예시 1) 파티션 4개, 컨슈머 2개 위의 그림처럼 적절한 비율로 나눠서 Consume하게 됩니다. 예시 2) 파티션 4개, 컨슈머 1개 컨슈머가 하나밖에 없으므로 하나의 Consumer가 파티션을 순차적으로 Consume 하게 됩니다. 예시 3) 파티션 4개, 컨슈머 5개 파티션보다 Consumer 개수가 많으면 남은 Consumer는 일을 하지 못합니다. 즉, Consumer 개수는 파티션보다 많으면 안된다. 1.2. Consumer 장애 상황 장애 시 리밸런싱 발생 리밸런싱 : 컨슈머의 장애 혹은 session_timeout_ms가 지나면 할당된 컨슈머 재조정 1.3. Consumer Group 컨슈머는 그룹을 지정해서 사용할 수 있다 컨슈머 그룹 단위로..
[Kafka] 카프카 기초 - 1 참조 블로그 : server-engineer.tistory.com/681 이 글은 위의 참고 영상과 그 밑의 정리해놓은 다른 블로그를 참조하며 정리한 글입니다. 제 글보다는 위의 글이 더 깔끔하다고 생각합니다... ㅎㅎ 0. 시작하며 이 글을 시작으로 꾸준히 업로드 될 카프카 시리즈 게시물은 제가 직접 카프카를 사용해 보면서 이정도만 알면 흐름정도는 알고 사용할 수 있겠구나 하는 정도로만 설명을 하고 정리를 할 예정입니다. 게시물을 끊어가는 기준은 부족한 제가 공부할 때 이해한 큰 단위 기준으로 나누게 되었습니다. 가볍게 짧은 시간에 보실 예정이라면 추천드리지만 깊게 알고싶으신 분들은 추가 검색을 권장드립니다. :) 1. Kafka 용어 정리 Broker : 카프카 서버의 단위 Topic : 사용자가 데..
[Kafka] Kafka 옵션 정리 필수 옵션 옵션 설명 broker.id 브로커 ID, 클러스터 내에 유일한 값이어야 함 zookeeper.connect 주키퍼 접속정보 listeners 리스너 목록 (프로토콜://호스트명:포트) 토픽 옵션 옵션 설명 기본값 추천값 auto.create.topics.enable 토픽 자동 생성여부 true false delete.topic.enable 토픽 삭제 가능 여부 true true num.partitions 토픽당 기본 파티션 수 1 1 성능 옵션 옵션 설명 기본값 추천값 background.threads 백그라운드 처리에 사용할 스레드 수 10 compression.type 압축 유형('gzip', 'snappy', 'lz4', 'zstd') producer (producer가 설정한 압축 코..