📕 book/아파치 카프카
-
4장. 카프카 상세 개념 - 토픽과 파티션📕 book/아파치 카프카 2023. 1. 17. 13:52
4장. 카프카 상세 개념 - 토픽과 파티션 ⭐ 토픽과 파티션 토픽은 카프카의 시작과 끝이다. 토픽을 만들면서 카프카를 사용하기 시작한다. 토픽에 대해 잘 이해하고 설정을 잘하는 것이 카프카를 통한 데이터 활용도를 높이는 것이다!! 📌 적정 파티션 개수 토픽의 파티션 개수는 카프카 성능과 관련있다. 토픽 생성 시 파티션 개수 고려사항 데이터 처리량 메시지 키 사용 여부 브로커, 컨슈머 영향도 데이터 처리량 파티션은 카프카 병렬처리의 핵심이다. 파티션의 개수가 많아질 수록 매핑되는 컨슈머 개수가 증가하기 때문 따라서, 파티션 개수를 정할 때 토픽에 필요한 데이터 처리량을 측정해 정하는 것이 중요 파티션 개수만큼 컨슈머 스레드를 운영하면 토픽의 병렬처리를 극대화 할 수 있다. 👀 컨슈머 전체 데이터 처리량이 ..
-
2장 - 카프카 빠르게 시작해보기📕 book/아파치 카프카 2023. 1. 12. 18:05
📍 AWS EC2 인스턴스 발급 및 보안 설정 AWS에서 카프카를 구축하는 2가지 방법 MSK(Managed Service Kafka) 사용 EC2에서 설치 및 실행 MSK AWS에서 공식적으로 지원하는 완전 관리형 카프카 서비스 간단한 콘솔 세팅으로 AWS에서 카프카 설치 및 실행을 자동화해준다. 실습을 위한 카프카를 위해서 실행되는 프로세스 : 주키퍼, 카프카 브로커 카프카 브로커의 기본 포트는 9092, 주키퍼의 기본 포트는 2181이다. EC2에 설치하는 브로커에 접속하기 위해서는 AWS EC2의 보안그룹의 Inbound 설정에 9092와 2181 포트를 열어야 한다. 실습용이므로 모든 IP로부터 접속 가능하도록 설정 주키퍼 💡 주키퍼는 분산 코디네이션 서비스를 제공하는 오픈소스이다. 분산 코디네..
-
Kafka 스트림즈 구현📕 book/아파치 카프카 2022. 9. 18. 18:01
스트림즈 DSL을 이용하여 구현 스트림즈 DSL - stream(), to() 특정 토픽을 KStream 형태로 가져오려면 스트림즈 DSL의 stream() 메서드를 사용하면 된다. KStream의 데이터를 특정 토픽으로 저장하려면 스트림즈 DSL의 to() 메서드를 사용하면 된다. build.gradle 스트림즈 애플리케이션을 개발하기 위한 라이브러리 추가 dependencies { compile 'org.apache.kafka:kafka-streams:2.5.0' } SimpleStreamApplication.java 스트림 프로세싱을 위한 코드를 스트림즈DSL로 작성 package com.example; import org.apache.kafka.common.serialization.Serdes; ..
-
3장 - 카프카 스트림즈📕 book/아파치 카프카 2022. 9. 18. 17:57
카프카 스트림즈 💡 토픽에 적재된 데이터를 상태기반(Stateful) 또는 비상태기반(Stateless)으로 실시간 변환하여 다른 토픽에 적재하는 라이브러리이다. 카프카의 스트림 데이터 처리를 위해 아파치 스파크 아파치 프링크 아파치 스톰 플루언트디 와 같은 다양항 오픈소스 애플리케이션이 존재하는데 ❓ 카프카 스트림즈를 사용해야 하는 이유 ❗스트림즈는 카프카에서 공식적으로 지원하는 라이브러리!! 카프카 버전이 오를 때 마다 스트림즈 자바 라이브러리도 같이 릴리즈 된다. 때문에, 자바 기반 스트림즈 애플리케이션은 카프카 클러스터와 완벽하게 호환되면서 스트림 처리에 필요한 편리한 기능들(신규 토픽 생성, 상태 저장, 데이터 조인 등)을 제공한다. 스트림즈 애플리케이션 또는 카프카 브로커의 장애가 발생하더라도..
-
3장 - 카프카 기본 개념📕 book/아파치 카프카 2022. 9. 18. 13:18
3. 1 카프카 브로커, 클러스터, 주키퍼 💡 카프카 브로커는 카프카 클라이언트와 데이터를 주고받기 위해 사용하는 주체 데이터를 분산 저장하여 장애가 발생하더라도 안전하게 사용할 수 있도록 도와주는 애플리케이션 하나의 서버에는 한 개의 카프카 브로커 프로세스가 실행 3대 이상의 브로커 서버를 1개의 클러스터로 묶어 운영 브로커들은 프로듀서가 보낸 데이터를 안전하게 분산 저장하고 복제하는 역할 수행 데이터 저장, 전송 프로듀서로 부터 데이터를 전달 받으면 카프카 브로커는 프로듀서가 요청한 토픽의 파티션에 데이터를 저장 프로듀서로부터 전달된 데이터는 파일 시스템에 저장된다. 컨슈머가 데이터를 요청하면 파티션에 저장된 데이터를 전달. 카프카는 메모리나 DB에 저장하지 않고 캐시 메모리를 구현하여 사용하지도 않..
-
1장 - 들어가며📕 book/아파치 카프카 2022. 9. 18. 13:01
카프카의 탄생 데이터를 생성하고 적재하기 위해서는 데이터를 생성하는 소스 애플리케이션과 데이터가 최종 적재되는 타깃 애플리케이션을 연결해야 한다. 초기 운영 시에는 단방향 통신을 통해 소스 → 타깃 애플리케이션으로 연동하는 소스코드를 작성 하지만, 아키텍처가 거대해지고 소스, 타깃 애플리케이션이 증가하면서 문제가 발생 문제 소스 애플리케이션과 타깃 애플리케이션을 연결하는 파이프라인 개수가 많아지면서 소스코드 및 버전 관리에서 이슈 발생 타깃 애플리케이션에 장애가 생길 경우 그 영향이 소스 애플리케이션에 전달 아파치 카프카 카프카는 각각의 애플리케이션끼리 연결하여 데이터를 처리하는 것이 아니라 한 곳에 모아 처리할 수 있도록 중앙 집중화 했다. 취합한 데이터 스트림을 한 곳에서 실시간으로 관리 가능 기업의..