본문 바로가기

분류 전체보기58

Kafka Cluster 구성 구성: Zookeeper 3개 Kafka 3개 1 설치 Kafka 설치는 아래 페이지 참조 Kafka는 Zookeeper와 함께 실행되기 떄문에 위 설치 방법을 따라가면 Zookeeper도 함께 설치함 단일 서버라면 위 처럼 한 개만 설치하고, 분산 서버라면 각각 설치할 것 2 Zookeeper 설정 위 kafka_2.12-2.95.0/config 폴더안에 zookeeper.properties 파일이 Zookeeper 설정 파일임 분산 서버라면 각 서버 마다 zookeeper.properties파일 한개를 각각 아래와 같이 server host만 변경하고 나머진 동일하게 수정하여 사용 하고, 단일 서버에서는 zookeeper.properties파일을 여러개 생성(Copy)하여 아래 설명처럼 clientP.. 2022. 1. 14.
Kafka Connect API 명령어 정리 카프카 커넥트는 기본적으로 localhost:8083 주소를 사용한다. 요청 메소드 호출 경로 설명 GET / 실행 중인 커넥트 정보 확인 GET /connectors 실행중인 커넥트 이름 확인 POST /connectors 새로운 커넥터 생성 요청 GET /connectors/{커넥트 이름} 실행 중인 커넥터 정보 확인 GET /connectors/{커넥트 이름}/config 실행 중인 커넥터의 설정값 확인 PUT /connectors/{커넥터 이름}/config 실행 중인 커넥터 설정값 변경 요청 GET /connectors/{커넥터 이름}/status 실행 중인 커넥터 상태 확인 POST /connectors/{커넥터 이름}/restart 실행 중인 커넥터 재시작 요청 PUT /connectors/.. 2021. 11. 27.
Kafka auto commit Kafka는 읽어들인 페이로드를 어디까지 읽었는지 자동으로 commit할 수 있는 auto.commit 옵션이 있다. enable.auto.commit = true auto.commit.interval.ms = ms 위 두 옵션을 통해 설정을 하는데 이 옵션이 편리해 보이지만 메세지를 중복 혹은 손실할 가능성이 생긴다. 가장 큰 이유는 카프카 컨슈머 그룹의 '리밸런싱' 과정에서 생기는데, 먼저 리밸런싱이 무엇인지 간략하게 설명하자면 카프카의 토픽의 파티션은 컨슈머 그룹의 컨슈머가 '독점'하는 형식이다. 만약 그룹내의 한 컨슈머가 문제가 발생한다면 해당 그룹은 파티션 하나 혹은 그이상을 이용할 수 없는 상태가 된다. 그렇게 된다면 메세지의 순서가 틀리게 되고, 서비스 장애로 이어질 수 있다. 그래서 카프카.. 2021. 11. 23.
자바 Exception 최근에 외부에 라이브러리와 API를 제공하는 작업을하다 느낀 자바 Exception에 대한 처리 방법을 정리한 글이다. 자바에는 원치않는 상황(에러 발생 상황, 예기치못한 값을 다뤄야하는 상황)을 다루기 위해 Exception이 있다. Exception은 잘 다루는것, 잘 이용하는 것 2가지 모두 중요하다고 생각한다. 우선 잘 다루는 것이란 다른 사람이 만든 라이브러리나, 메소드를 이용하려하는데 거기서 Exception이 발생했을시 어떤식으로 처리할지에 대한 것이다 다름으로 잘 이용하는 것은 라이브러리, 메소드를 직접 만들어서 다른사람에게 제공할 때 그곳에서 Exception을 던질것인지, 혹은 로직처리도중 Exception이 발생할 경우 이를 잡아서 에러코드를 만들것인지에 대한 것이다. 그럼 2가지를 .. 2021. 10. 9.
kafka cli 명령어 정리 Topic 명령어 설명 비고 bin/kafka-topics.sh --create --bootstrap-server localhost:9092 --partition 4 --replication-factor 1 --topic 토픽 이름 토픽 생성 bin/kafka-topics.sh --bootstrap-server localhost:9092 --topic 토픽이름 --alter --partitions 5 파티션 수 변경 실행중에 파티션 수 감소는 불가 bin/kafka-topics.sh --bootstrap-server localhost:9092 --topic 토픽이름 --alter --add-config 설정=설정값 토픽 옵션 추가 기존 옵션 존재시 변경하지 않음 bin/kafka-topics.sh --b.. 2021. 8. 6.
no main manifest attribute in 에러 no main manifest attribute in 에러는 spring 애플리케이션을 빌드한 결과물로 나온 jar파일에서 처음 호출할 Main 메소드를 찾지 못했다는 에러다. 주로 jar파일을 "java -jar app.jar" 명령어로 실행을 시킬떄 일어난다. java -jar를 사용해서 jar파일을 실행시킨다면 JVM이 jar파일의 Main메소드를 찾아서 호출한다. 이떄 Main메소드의 위치는 MANIFEST.MF라는 파일에 명시가 되어있다. 정상적인 경우 아래와 같이 Start-Class라는 이름의 Main메소드 위치가 나와야한다. Manifest-Version: 1.0 Created-By: Maven Jar Plugin 3.2.0 Build-Jdk-Spec: 15 Implementation-Ti.. 2021. 8. 3.