본문 바로가기

카프카6

[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] 아파치 카프카 (Apache Kafka) 란? 아파치 카프카 애플리케이션 프로그래밍 with 자바 책 공부 내용 정리1. 카프카의 탄생링크드인 개발자들이 파편화된 데이터 파이프라인을 개선하기 위해 만든 시스템.카프카는 각각의 애플리케이션끼리 연결하여 데이터를 처리하는 것이 아니라,한 곳에 모아 처리할 수 있도록 중앙집중화했다.카프카는 기업의 대용량 데이터를 수집하고 이를 실시간 스트림으로 소비할 수 있게 만들어주는 일종의 중추 신경으로 동작한다고 볼 수 있다.=> 카프카를 중앙 배치함으로써 소스 애플리케이션과 타깃 애플리케이션 사이의 의존도를 최소화 하여 커플링 완화카프카 내부에 저장되는 파티션의 동작은 FIFO(First In First Out) 방식의 큐 자료구조와 유사큐에 데이터를 보내는 것이 프로듀서큐에서 데이터를 가져가는 것이 컨슈머카프카를.. 2024. 8. 23.