G.Code/kafka7 [kafka] 6.클라우드 카프카 서비스 컨플루언트 클라우드 AWS MSK MSK(Managed Streaming for Apache Kafka)는 AWS에서 제공하는 Saas형 아파치 카프카 서비스이다. AWS MSK는 AWS 인프라에서 카프카 클러스터를 생성, 업데이트 삭제 등과 같은 운영 요소를 대시보드를 통해 제공한다. 또한, 안전하게 접속할 수 있도록 클러스터와 연동시 TLS인증 보안을 설정할 수 있다. MSK로 클러스터를 생성하고자 하는 엔지니어는 아파치 카프카 버전을 직접 선택할 수 있다. 그렇기 때문에 기존에 카프카 클라이언트를 운영하고 있는 기업은 버전 차이에 의한 서비스 연동 이슈를 발생시키지 않고 안전하게 클러스터를 사용할 수 있다는 장점이 있다. MSK로 생성한 클러스터는 AWS에서 제공하는 인프라 영역에 구축된다. MSK.. 2021. 12. 13. [kafka] 5.카프카 실전 프로젝트 로컬 하둡, 엘라스틱서치, 키바나 설치 brew install hadoop elasticsearch kibana 2021. 12. 9. [kafka] 4.카프카 상세 개념 설명 토픽과 파티션 토픽 생성시 파티션 개수 고려사항 - 데이터 처리량 : 프로듀서 전송 데이터량(.초당 1000개) < 컨슈머 데이터 처리량(초당 100개) x 파티션 개수(10개) - 메시지 키 사용 여부 - 브로커, 컨슈머 영향도 토픽 정리 정책(cleanup.policy) - 토픽 삭제 정책(delete policy) : 토픽의 데이터를 삭제할 때는 세그먼트 단위로 삭제를 진행한다. 세그먼트는 토픽의 데이터를 저장하는 명시적인 파일 시스템 단위이다. 세그먼트는 파티션마다 별개로 생성되며 세그먼트의 파일 이름은 오프셋 중 가장 작은 값이 된다. 세그먼트는 여러 조각으로 나뉘는데 segment.bytes 옵션으로 1개의 세그먼트 크기를 설정할 수 있다. segment.bytes 크기보다 커질 경우에는 기존.. 2021. 11. 23. [kafka] 3.카프카 기본개념 설명 브로커 역할 카프카는 메모리나 데이터베이스에 저장하지 않으며 따로 캐시메모리를 구현하여 사용하지 않는다. 파일시스템에 데이터를 저장해서 속도가 떨어질거라는 의문을 가질수도 있지만 카프카는 페이지캐쉬(page cache)를 사용하여 입출력 속도를 높였다. 페이지 캐쉬란? OS에서 파일 입출력의 성능 향상을 위해 만들어 놓은 메모리 영역 카프카 브로커란? 카프카 클라이언트와 데이터를 주고받기 위해 사용하는 주체이자, 데이터를 분산 저장하여 장애가 발생하더라도 안전하게 사용할 수 있도록 도와주는 애플리케이션 컨트롤러란? 다른 브로커들의 상태를 체크하고 브로커가 클러스터에서 빠지는 경우 해당 브로커에 존재하는 리더 파티션을 분배 한다. 컨트롤러 역할을 하는 브로커에 장애가 생기면 다른 브로커가 컨트롤러 역할을 .. 2021. 11. 4. [kafka] kafka 기본 명령어 # 주키퍼 및 브로커 실행 $ bin/zookeeper-server-start.sh -daemon config/zookeeper.properties $ bin/kafka-server-start.sh -daemon config/server.properties # hello.kafka 토픽 생성 bin/kafka-topics.sh --create --bootstrap-server my-kafka:9092 --topic hello.kafka # hello.kafka.2 토픽생성 --partitions 3 : 파티션 갯수 3개 --replication-factor 1 : 토픽의 파티션을 복제할 복제 개수를 지정, 1은 복제를 하지 않고 사용한다는 의미 2이면 1개의 복제본을 사용하겠다는 의미, replicati.. 2021. 11. 3. [kafka] kafka ec2 설치 aws-ec2 접속id : ec2-user 카프카 패키지 다운로드 : wget http://archive.apache.org/dist/kafka/2.5.0/kafka_2.12-2.5.0.tgz 카프카 tar파일 압축해제 : tar xvf kafka_2.12-5.0.tgzvm bash 쉘을 이용하여 ec2 heap 메모리 설정 vim ~/.bashrc # bash쉘 수정 # .bashrc # Source global definitions if [ -f /etc/bashrc ]; then . /etc/bashrc fi # Uncomment the following line if you don't like systemctl's auto-paging feature: # export SYSTEMD_PAGER= #.. 2021. 10. 28. [kafka] kafka가 데이터 파이프 라인에 적합한 이유 높은 처리량 카프카는 프로듀서가 브로커로 데이터를 보낼 때와 컨슈머가 브로커로부터 데이터를 받을 때 모두 묶어서 전송한다. 동일한 양의 데이터를 보낼 때 네티워크 통신 횟수를 최소한으로 줄인다면 동일 시간 내에 더 많은 데이터를 전송 할 수 있다. 많은 양의 데이터를 묶음 단위로 처리하는 배치로 빠르게 처리할 수 있기 때문에 대용량의 실시간 로그데이터를 처리하는 데에 적합하다. 또한 파티션 단위를 통해 동일 목적의 데이터를 여러 파티션에 분배하고 데이터를 병렬처리할 수 있다. 파티션 개수만큼 컨슈머 개수를 늘려서 동일 시간당 데이터 처리량을 늘리는 것이다. 확장성 카프카는 데이터의 가변적인 환경에 적응하도록 설계되어 있다.(하루 1000건이 갑자기 100만건으로 되는 경우) 데이터가 적을때는 카프카 클러.. 2021. 10. 27. 이전 1 다음 반응형