Kafka 14

[kafka] docker portainer로 topic 검색

카프카를 docker를 통해서 설치한다면, docker 내부에 설치된 카프카 관련 명령어들을 바로 사용할 수 없어 번거롭다. 이럴때 portainer tool을 사용하여 cmd창을 실행하면 쉽게 명령어를 실행할 수 있다. portainer 설치는 아래 사이트를 참고하면 된다. www.portainer.io/ Portainer | Open Source Container Management GUI for Kubernetes, Docker, Swarm Portainer is the definitive open source container management GUI for Kubernetes, Docker, Swarm and ACI. www.portainer.io portainer 접속포트는 리눅스 기반이라면..

Programming/Kafka 2021.01.29

[kafka] Multi-broker cluster 설치 및 실행

이전에 카프카 공식홈페이지의 Quick Start 가이드를 참고하여 하나의 주키퍼에 하나의 카프카를 연동하여 실행시키는 것은 진행해 보았다. 이번 글에서는 하나의 주키퍼에 멀티 카프카를 연동하는 방법에 대해서 알아보자. 윈도우 환경에서 Powershell이나 cmd 창에서 kafka_2.12-2.5.0\bin\windows 경로에서 명령어를 실행한다. 리눅스 환경이라면 terminal 창에서 kafka_2.12-2.5.0\bin 경로에서 명렁어를 실행한다. 필자는 윈도우 환경이므로, 윈도우 기반으로 설명을 진행하겠다. 1. 주키퍼 실행 주키퍼의 환경설정은 ..\..\..\config\zookeeper.properties 파일을 참고하면 된다. 만약 멀티 노드 환경의 주키퍼를 실행한다면, 해당파일의 수정이..

Programming/Kafka 2020.05.23

[kafka] Confluent Platform Versions

카프카 구축 프로젝트를 진행하다보면, Confluent 에서 제공하는 플랫폼 버전과 카프카 버전을 확인해야할 때가 있다. 2020년 5월 18일 기준 버전은 아래와 같다 컨플루언트 플랫폼 릴리즈 버전 지원 종료 날짜는 부 버전 (예 : 5.5.x)에만 적용됩니다. 유지 관리 버전은 동일한 2 년 수명주기를 따릅니다. 2 년 지원 정책이 표준입니다. 프리미엄 지원 플랜에는 연장 지원 정책이 적용될 수 있습니다. 각 버전의 Confluent Platform에는 특정 Confluent Platform 버전에서만 호환되는 여러 구성 요소 서비스가 포함되어 있습니다. 여러 버전에서 사용할 수있는 클라이언트 및 Confluent Control Center를 포함한 예외가 있습니다. Apache Kafka® 및 그 ..

Programming/Kafka 2020.05.20

[kafka] multi-node zookeeper & kafka docker-compose.yml file

주키퍼와 카프카를 도커에 구축하기 위해서는 도커로 하나씩 실행하는 것보단 도커 컴포즈나 도커 스왐으로 실행하는 것을 추천한다. 주키퍼, 카프카 모두 분산 처리 시스템이기 때문에 여러개의 어플리케이션을 한꺼번에 띄우고 관리하는 것은 도커 컴포즈가 편하기 때문이다. 도커 컴포즈를 사용하다보면 도커 스왐이나 쿠버네티스가 더 편할것 같고, 옮길까 고민도 했지만 우선 도커 컴포즈 기준으로 분산 처리 시스템을 구축해본다. Sample docker-compose.yml 주키퍼 1개와 카프카 3개를 셋팅한 도커 컴포즈 파일은 아래와 같다. version: "3.8" services: zoo1: image: zookeeper:3.4.9 restart: always hostname: zoo1 networks: broker..

Programming/Kafka 2020.05.19

[DockerCompose] confluentinc/cp-kafka server.properties 설정

docker compose로 주키퍼 카프카 구축시, 로컬에서 구축하는 것처럼 server.properties 파일을 도커 외부에서도 확인하고 싶을때가 있다. 이를 설정하기 위해선, 외부에 server.properties파일을 미리 생성해주고, volum 환경 변수를 아래와 같이 설정해 주면된다. ... volumes: /home/config/server.properties:/etc/kafka/server.properties ... /home/config/server.properties : docker-compose 외부에 설정할 파일 경로 /etc/kafka/server.properties : docker-compose 내부에 설정된 properites 경로 docker-compose.yml git 바로..

Programming/Server 2020.05.16

[kafka] 보관 주기 설정

카프카의 데이터 보관 주기는 기본적으로 7일로 설정되어 있다. 보관 주기를 수정하는 방법 2가지가 있으며, 수정할때도 용량단위, 시간단위, 일단위, 초단위로 구체적인 단위로 설정 가능하다. 방법1. server.properties 파일 수정 보관주기 옵션 항목 log.retention.bytes : byte 단위 기준으로 데이터 보관 log.retention.ms : 초 단위 기준으로 데이터 보관 log.retention.minutes : 분 단위 기준으로 데이터 보관 log.retention.hours : 시간 단위 기준으로 데이터 보관, 해당 옵션이 168으로 기본으로 적용되어 있음 server.properties 파일 확인 ############################# Log Retentio..

Programming/Kafka 2020.05.15

[kafka] JVM Heap size

카프카는 자바 기반의 JVM을 사용하는 애플리케이션이므로 메모리가 할당되는 영역인 힙(heap)이 만들어진다. # 카프카 메모리 하지만 카프카는 힙 공간을 주의해서 사용하기 때문에 힙 크기를 6GB이상으로 설정하지 않아도 된다. 적은 힙 공간으로도 구동이 가능한 이유는 메세지를 저장하고 캐싱할때, 파일 시스템에 크게 의존하기 때문이다. 모든 데이터는 disk에 flush 할 필요 없이 파일 시스템에 영구적인 로그로 즉시 기록된다. 사실 이것은 커널의 페이지 캐시로 전송된다는 것을 의미한다. 최신 OS는 메모리를 회수할 때 사용가능한 모든 메모리를 디스크 캐싱으로 전환하기 때문에 성능저하가 거의없다. 그렇기 때문에 카프카의 힙 크기는 6GB이상으로 설정하지 않아도 된다. 이 결과 32GB 머신에서 28-3..

Programming/Kafka 2020.05.13

[kafka] docker kafka image

도커 환경에서 카프카와 주키퍼 도커 환경에서 카프카와 주키퍼 구축시에 사용할 이미지를 먼저 선택해야한다. 도커 명령어를 통해 주키퍼와 카프카에 관련된 이미지를 검색한 결과, 주키퍼는 공식 이미지가 있지만, 카프카는 공식 이미지가 없음을 확인 할 수 있다. $docker search zookeeper $docker search kafka 카프카는 아쉽게도 공식적으로 지원하는 이미지가 없어, 비교적 사람들이 많이 언급하는 카프카 이미지들의 특징을 정리해보았다. 카프카 이미지 특징 1. dockerkafka/kafka Docker hub 바로가기 kafka외에도 zookeeper, kafka-manager 솔루션 제공 데이터 플랫폼 최강자 책 참고 가능. (2페이지정도 분량이긴 하지만..) 4년전에 업데이트 ..

Programming/Kafka 2020.04.29

[Kafka] 카프카 매니저 설치 Kafka-Manager install

카프카 클러스터의 모니터링하는 방법은 대표적으로 2가지가 있다. 첫번째는 JMX 사용하여 모니터링하는 방법이 있고, 두번째는 야후에서 공개한 오픈소스인 Kafka-Manager이다. 이번 글에서는 Kafka-Manager 설치하는 방법에 대해서 알아본다. 1. 카프카 매니저 다운로드 https://github.com/yahoo/CMAK/releases yahoo/CMAK CMAK is a tool for managing Apache Kafka clusters. Contribute to yahoo/CMAK development by creating an account on GitHub. github.com 3.X.X.X 버전은 JAVA 11부터 되는 것 같아서 안전하게 CMAK-1.3.3.23.tar 다운..

Programming/Kafka 2020.04.24

[kafka] 고가용성 리플리케이션

카프카는 분산 시스템으로 서버의 물리적 장애가 발생하더라도 높은 가용성을 보장하기위해 리플리케이션 기능을 제공한다. 리플리케이션(복제)는 토픽 자체를 복제하는 것이 아닌 토픽을 이루는 Partition 자체를 복제하는 것을 의미한다. 1. 리플리케이션 팩터 (Replication Factor) 카프카는 Replication Factor 옵션으로 몇개를 복제할 것이지 설정 가능 기본값은 1 config/server/properties 파일에서 default.replication.factor 의 값을 수정 topic 마다 replication facotr 값을 줄 수 있음 운영중에도 변경 가능 클러스터내에 모든 broker 동일하게 설정 2. 리더(leader), 팔로워(follower) 리더는 모든 읽기 ..

Programming/Kafka 2020.04.15