본문 바로가기

전체 글54

[Kafka] 아파치 카프카 기본 개념 :: 카프카 스트림즈 아파치 카프카 애플리케이션 프로그래밍 with 자바 책 공부 내용 정리카프카 스트림즈는 토픽에 적재된 데이터를 실시간으로 변환하여 다른 토픽에 적재하는 라이브러리다.카프카 스트림 데이터 처리를 위해 다양한 오픈소스 애플리케이션이 존재하지만, 스트림즈는 카프카에서 공식적으로 지원하는 라이브러리다. 자바 기반 스트림즈 애플리케이션은 카프카 클러스타와 완벽하게 호환되면서 스트림 처리에 필요한 편리한 기능들(신규 토픽 생성, 상태 저장, 데이터 조인 등)을 제공한다.보통의 빅데이터 처리에 필수적이라고 판단되었던 분산 시스템이나 스케줄링 프로그램들은 스트림즈를 운영하는 데에 불필요하다. 자바 라이브러리로 구현하는 스트림즈 애플리케이션은 JVM 위에서 하나의 프로세스로 실행되기 때문이다.스트림즈 애플리케이션은 내부.. 2024. 10. 8.
[Kafka] 아파치 카프카 기본개념 :: 클라이언트 라이브러리 - 어드민 API 아파치 카프카 애플리케이션 프로그래밍 with 자바 책 공부 내용 정리카프카 클라이언트에서는 내부 옵션들을 설정하거나 조회하기 위해 AdminClient 클래스를 제공한다.AdminClient 클래스를 활용하면 클러스터의 옵션과 관련된 부분을 자동화할 수 있다.AdminClient 활용 예시- 카프카 컨슈머를 멀티 스레드로 생성할 때, 구독하는 토픽의 파티션 개수만큼 스레드를 생성하고 싶을 때, 스레드 생성 전에 해당 토픽의 파티션 개수를 어드민 API를 통해 가져올 수 있다.- AdminClient 클래스로 구현한 웹 대시보드를 통해 ACL(Access Control List)이 적용된 클러스터의 리소스 접근 권한 규칙을 추가할 수 있다.- 특정 토픽의 데이터 양이 늘어남을 감지하고 AdminClien.. 2024. 9. 27.
[Kafka] 아파치 카프카 기본 개념 :: 클라이언트 라이브러리 - 컨슈머 API 아파치 카프카 애플리케이션 프로그래밍 with 자바 책 공부 내용 정리 컨슈머 API프로듀서가 전송한 데이터는 카프카 브로커에 적재된다. 컨슈머는 적재된 데이터를 사용하기 위해 브로커로부터 데이터를 가져와서 필요한 처리를 한다.IntelliJ로 프로젝트를 생성해 기본적인 애플리케이션을 만들어본다.카프카 클라이언트 디펜던시와 로그 확인을 위한 slf4j를 추가해준다.클라이언트 버전은 책의 버전과 같은 버전으로 하였다.implementation('org.apache.kafka:kafka-clients:2.5.0')implementation('org.slf4j:slf4j-simple:1.7.30')컨슈머 애플리케이션을 개발하기 위한 자바 파일을 생성한다.package com.example;import org... 2024. 9. 25.
[Kafka] 아파치 카프카 기본개념 :: 클라이언트 라이브러리 - 프로듀서 API 아파치 카프카 애플리케이션 프로그래밍 with 자바 책 공부 내용 정리 프로듀서 API프로듀서 애플리케이션은 카프카에 필요한 데이터를 선언하고 브로커의 특정 토픽의 파티션에 전송한다.프로듀서는 데이터를 직렬화하여 카프카 브로커로 보내기 때문에 자바에서 선언 가능한 모든 형태를 브로커로 전송할 수 있다.직렬화란 자바 또는 외부 시스템에서 사용 가능하도록 바이트 형태로 데이터를 변환하는 기술이다.직렬화를 사용하면 프로듀서는 자바 기본형과 참조형 뿐만 아니라 동영상, 이미지 같은 바이너리 데이터도 프로듀서를 통해 전송할 수 있다.먼저 IntelliJ를 실행하여 프로젝트를 생성하여 기본적인 프로듀서 애플리케이션을 만들어본다.카프카 클라이언트 디펜던시와 로그 확인을 위한 slf4j를 추가해준다.implementa.. 2024. 9. 23.
[Kafka] 아파치 카프카 기본 개념 아파치 카프카 애플리케이션 프로그래밍 with 자바 책 공부 내용 정리 카프카 브로커카프카 브로커는 카프카 클라이언트와 데이터를 주고받기 위해 사용하는 주체이자, 데이터를 분산 저장하여 장애가 발생 하더라도 안전하게 사용할 수 있도록 도와주는 애플리케이션이다.카프라 클러스터로 묶인 브로커들은 프로듀서가 보낸 데이터를 안전하게 분산 저장하고 복제하는 역할을 수행한다.데이터 저장, 전송프로듀서로부터 데이터를 전달받으면카프카 브로커는 프로듀서가 요청한 토픽의 파티션에 데이터를 저장하고컨슈머가 데이터를 요청하면 파티션에 저장된 데이터를 전달한다.카프카는 페이지 캐시를 사용하여 디스크 입출력 속도를 높였다.페이지 캐시란 OS에서 파일 입출력의 성능 향상을 위해 만들어 놓은 메모리 영역이다.데이터 복제, 싱크카프카.. 2024. 9. 13.
[Kafka] 아파치 카프카 CLI 명령어 kafka-topics.sh카프카 토픽 생성--replication-factor 1로 설정할 경우 복제를 하지 않고 사용하겠단 의미이며, 2면 1개의 복제본을 생성한다.복제 수의 최소 설정은 1이고, 최대 설정은 카프카 클러스터의 브로커 수이다.bin/kafka-topics.sh \ --create \ --bootstrap-server 카프카브로커IP:포트 \ [--partitions 파티션수] \ [--replication-factor 복제수(1이면복제X)] \ [--config retention.ms=토픽데이터유지시간] \ --topic 토픽명 카프카 토픽 조회--exclude-internal 옵션 추가 시 내부 관리를 위한 인터널 토픽을 조회 목록에서 제외할 수 있다.bin/kafka-t.. 2024. 9. 5.
[Kafka] 아파치 카프카 실행 카프카 브로커를 실행하기 위해서는 jdk가 설치되어 있어야한다. [AWS] aws ec2 open jdk 설치 방법초기 인스턴스 생성 시에 Amazon Linux로 설치를 했다.해당 os에는 java가 설치되어있지 않기 때문에 설치해주어야 한다.먼저 $ java -version 명령어로 자바가 설치되어있는지 확인해준다.자바가 설치되mi2mic.tistory.com 아파치 카프카 애플리케이션 프로그래밍 with 자바 책 공부 내용 정리카프카 브로커를 실행하기 위해 카프카 바이너리 패키지를 다운로드한다.책 기준 버전이 2.5.0이기 때문에 해당 버전을 다운로드 해주었다.wget https://archive.apache.org/dist/kafka/2.5.0/kafka_2.12-2.5.0.tgz다운로드가 완료되.. 2024. 9. 3.
[AWS] aws ec2 open jdk 설치 방법 초기 인스턴스 생성 시에 Amazon Linux로 설치를 했다.해당 os에는 java가 설치되어있지 않기 때문에 설치해주어야 한다.먼저 $ java -version 명령어로 자바가 설치되어있는지 확인해준다.자바가 설치되어 있지 않다면 yum 명령어를 통해 설치를 진행한다.$ sudo yum install java-1.8.0-amazon-corretto-devel.x86_64sudo yum install java-1.8 까지만 입력 후 키보드 텝 키를 누르면 알아서 완성해준다.* 그 위 상위 버전으로는 작성일 기준 11, 17, 21, 22 버전이 사용 가능하다.sudo yum install java-버전 입력 후 텝 키를 눌러주면 완성해준다.ex. sudo yum install java-22-amazon.. 2024. 9. 3.
[AWS] aws ec2 putty 접속 방법 ssh 접속에 이어 putty를 이용해 접속해보도록 한다.먼저 검색창에 putty를 검색해 사이트로 들어가 putty.msi 파일을 다운받은 후 설치해준다. 설치된 putty 폴더로 이동한다.먼저 PuTTYgen 프로그램을 사용해 ppk 파일을 만든 후,PuTTY 프로그램을 이용해 접속해보도록 한다. PuTTYgen 프로그램을 켜서 Load 버튼을 클릭한다.생성해둔 키페어 파일이 있는 폴더로 이동한다.파일유형을 All Files로 바꿔야 pem 파일이 보인다.생성하고자 하는 키페어 파일을 선택한다. 경고창이 뜨는데 그냥 확인버튼을 눌러줬다..Save private key 버튼을 눌러서 ppk 파일을 생성해준다.putty로 접속하기 위해 인스턴스 정보에서 퍼블릭 IPv4 주소를 복사해준다. PuTTY 프로.. 2024. 9. 3.
[AWS] 윈도우 SSH 접속 방법 aws 생성한 인스턴스에 ssh 접속해보자윈도우 OS기준으로 진행한다.먼저 aws 콘솔로 들어가서 ec2 대시보드로 들어간다.ec2 대시보드 목록 중 인스턴스 > 인스턴스를 선택한다.인스턴스를 선택하고 연결 버튼을 누른다. SSH 클라이언트 탭을 선택하면 연결방법(?)을 친절히 알려준다.ssh 기능이 활성화되어있지 않다면 먼저 활성화시켜준다.윈도우 설정 > 시스템 > 선택적 기능에서 SSH 기능을 추가할 수 있다.키 파일이 저장된 폴더로 이동한다.리눅스 환경의 경우 chmod 400으로 권한을 바꿔줄 수 있지만 윈도우는 chmod 명령어가 없다..키 파일을 선택 후 마우스 오른쪽 클릭 > 속성으로 들어간다. 속성에서 보안 탭을 선택한다.여러 사용자에 부여된 권한이 보인다.하단의 고급을 선택한다. 먼저 기.. 2024. 9. 3.