본문 바로가기

IT/MSA11

카프카 토픽 생성 에러(ERROR org.apache.kafka.common.errors.InvalidReplicationFactorException: Replication factor: 1 larger than available brokers: 0) 카프카를 실행시킨 후, 카프카 토픽을 생성할 때 다음과 같은 에러가 발생하는 경우가 있다. 토픽 생성 명령어 : $ /usr/local/kafka/bin/kafka-topics.sh --zookeeper zk01:2181,zk02:2181,zk03:2181/kafka_znode1 --replication-factor 1 --partitions 1 --topic topic1 --create 에러 메시지 : Error while executing topic command : Replication factor: 1 larger than available brokers: 0. [2020-12-13 13:56:31,240] ERROR org.apache.kafka.common.errors.InvalidReplic.. 2020. 12. 13.
아파치 카프카 실행 에러(kafka.common.InconsistentClusterIdException: The Cluster ID doesn't match stored clusterId Some in meta.properties. The broker is trying to join the wrong cluster. Configured zookeeper.connect may be wrong.) 아파치 카프카가 시작이 정상적으로 되지 않는 경우가 있다. 로그파일(카프카 설치디렉토리/logs/server.log)를 확인해 보니 아래와 같은 에러가 발생하였다. kafka.common.InconsistentClusterIdException: The Cluster ID X5OzZfF9RaG-mSIwzW684w doesn't match stored clusterId Some(P2GQ3DlJTFusFPnSeKeQJw) in meta.properties. The broker is trying to join the wrong cluster. Configured zookeeper.connect may be wrong. at kafka.server.KafkaServer.startup(KafkaServer.scal.. 2020. 12. 12.
리눅스에 아파치 카프카(Apache Kafka) 설치하기 이번 글에서는 리눅스에 아파치 카프카(Apache Kafka)를 설치한 후 주키퍼와 연결해 볼 것이다. 이 글의 순서는 다음과 같다. 1. 사전준비 2. 아파치 카프카 설치 3. 아파치 카프카 실행/종료 4. Systemd에 카프카 등록(선택사항) 5. 주키퍼 연결 확인 1. 사전준비 이 글을 진행하기 전에는 다음과 같은 준비가 되어 있어야 한다. 1) 리눅스에 코디네이션 애플리케이션인 주키퍼 설치(리눅스에 주키퍼 설치하기 글 참고) 2) 아파치 카프카 클러스터를 구성할 리눅스 서버. 이 글에서는 AWS EC2 인스턴스(Amazon Linux 2 AMI (HVM) t2.smaull. cpu 1, memory 2G) 2대에 설치를 진행할 것이다(카프카 실행 시 1G 메모리로는 메모리 부족 에러가 발생한다).. 2020. 12. 9.
아파치 카프카 실행 에러(Classpath is empty. Please build the project first e.g. by running) 아파치 카프카를 설치한 후 실행시킬 때 아래와 같은 에러가 발생하는 경우가 있다. Classpath is empty. Please build the project first e.g. by running './gradlew jar -PscalaVersion=2.13.2' 위와 같은 에러가 발생하는 원인은 아파치 카프카 binary 파일을 다운받고 실행시킨 것이 아니라, source 파일을 다운받고 실행시켜서 그렇다. 카프카를 다운받을 때는 kafka.apache.org/downloads 에서 binary 파일을 다운받도록 하자. 참고 stackoverflow.com/questions/34081336/classpath-is-empty-please-build-the-project-first classpath .. 2020. 11. 22.
리눅스에 주키퍼(zookeeper) 설치하기 지난 글에서는 아파치 카프카(Apache Kafka)의 정의에 대해서 알아보았다. 이번 글에서는 아파치 카프카를 관리하기 위해서는 반드시 필요한 코디네이션 애플리케이션인 주키퍼(Zookeeper)를 설치 실습을 진행해 보겠다(아파치 카프카 설치는 다음 글에서 진행할 것이다) 이 글의 진행 순서는 다음과 같다. 1. 서버 준비 2. 주키퍼 설치하기 3. 주키퍼 실행하기 1. 서버 준비 우선 주키퍼를 설치할 서버가 필요하다. 주키퍼는 서버 3대에 설치를 진행하도록 하겠다(다음 글에서 카프카는 서버 2대에 설치를 진행할 것이다) 사실 아파치 카프카 및 주키퍼 모두 각각 서버 1대에 설치를 진행해도 되지만, 클러스터 구성을 맛보기 위해서 주키퍼는 3대의 서버에 설치할 것이다. 또한 주키퍼는 클러스터로 구성할 경.. 2020. 11. 5.
아파치 카프카(Apache Kafka) 정의 및 특징 최근에 아파치 카프카(Apache Kafka)에 대한 관심이 생겨서 공부를 하게 되었다. 이 글에서는 아파치 카프카에 대한 정의 및 특징에 대해 정리를 해 볼 것이다. 글의 진행 순서는 다음과 같다. 1. 아파치 카프카(Apache Kafka)란 무엇인가? 2. 아파치 카프카 탄생 배경 3. 아파치 카프카의 용어 4. 아파치 카프카의 용어 5. 아파치 카프카의 특징 1. 아파치 카프카(Apache Kafka)란 무엇인가? 아파치 카프카(Apache Kafka)는 대용량, 대규모 메시지 데이터를 빠르게 처리하도록 개발된 메시징 플랫폼이다. 비즈니스 중심의 소셜 네트워크 서비스를 하는 링크드인(LinkedIn)에서 출발해 2011년 초 아파치 공식 오픈소스로 세상에 공개되었다. 많은 기업들이 자사의 빅데이터.. 2020. 10. 17.
Jaeger를 활용한 분산 환경 서비스 로그 트레이싱(SpringBoot, Spring Cloud Gateway 활용) 이번 글에서는 Jaeger를 활용하여 분산 환경 내 SpringBoot로 구성된 마이크로서비스들의 로그 트레이싱하는 방법에 대해 배워볼 것이다. 이 글은 쿠버네티스 환경이 아닌 AWS EC2 환경에서 실습하는 내용이며 Jaeger도 EC2 환경에 설치해서 실습을 진행할 것이다. 만약 쿠버네티스 환경에서 구동중인 마이크로서비스를 트레이싱 하기 위해 Jaeger도 쿠버네티스 환경에 설치하는 글을 참고하려면 다음 글을 참고하길 바란다(AWS EKS에 로그 트레이싱 환경 구축하기(2) - Jaeger 설치하기) 이 글의 순서는 다음과 같다 1. Jaeger는 무엇인가? 2. Jaeger 용어 및 구성요소 3. Jaeger 설치 및 실행 4. SpringBoot 서비스 로그 트레이싱 실습 1. Jaeger는 무엇.. 2020. 7. 11.