목록MessageQueue (5)
테키테크 TEKITECH
5장과 6장에서는 프로듀서와 컨슈머의 내부 동작과 원리, 그리고 구현 방법을 다룬다. 한 번에 모두 소화하기는 쉽지 않아서 우선 프로듀서 내부 동작 원리를 이해하는 것만을 목표로 5장을 공부해보았다. 목차 프로듀서와 카프카 배치 전송 방식과 개선 전략 1. 지연시간 최소화: 라운드 로빈 전략과 스티키 파티셔닝 전략 2. 압축 전송 3. 중복 없는 전송 4. 정확히 한 번 전송 프로듀서와 카프카 카프카는 성능 향상을 위해 병렬 처리를 지향한다. 따라서 메시지는 토픽 별로 관리하고, 토픽은 최소 하나 또는 둘 이상의 파티션으로 나누어 구성하며, 각 파티션의 데이터는 용량에 따라 로그 세그먼트로 나누어 저장한다. 반면 프로듀서는 빠르고 안정적인 성능을 위해 배치 처리, 압축 전송 등의 방식으로 트래픽을 최소화..
앞서 카프카의 기본 개념과 구조를 이해하고, 실습 환경을 구축해보았다. 이번 장에서는 카프카 기본 명령어를 사용해 실습을 진행하며 리플리케이션 동작과 리더-팔로워 역할, 리더에포크, 컨트롤러, 로그 및 로그 컴팩션 등 핵심 내부 동작의 원리를 공부해보려고 한다. 목차 카프카 리플리케이션 카프카의 기본 도구 토픽과 세그먼트, 그리고 리플리케이션 [실습 1] kafka-topics.sh 명령어로 토픽 생성 [실습 2] 토픽 상세 정보 확인 [실습 3] 콘솔 프로듀서를 이용해 토픽에 메시지 전송 [실습 4] 세그먼트 파일로 리플리케이션 확인 로그 세그먼트 관리 방법 [실습 5] 로그 세그먼트 삭제 메세지 일관성 유지 전략 1. 리더-팔로워 역할 분리 2. ISR과 컨트롤러 [실습 6] controlled sh..
이번 장에서는 카프카 실습을 위해 인프라 구축을 해본다. 책에서 추천하는 방법은 AWS 환경이고, 온프레미스로 구축하는 방법도 알려준다. 하지만 나는 GCP를 사용하고 있기 때문에 GCP에서 실습을 진행했다. 환경을 구축한 후에는 프로듀서와 컨슈머에서 메시지를 주고받는 동작을 실제로 해보면서 기본 구동 원리를 공부했다. 실습 환경 구성 책에서는 카프카 3대, 주키퍼 3대, 배포용 서버 1대와 DNS 서버 1대로 구축해보는 것을 추천한다. 하지만 테스트용이므로 DNS 서버 구축까지는 안 하고 호스트 파일만 바꿔주기로 했다. 그래서 내가 구축하려는 환경은 아래와 같다. 어느 정도 익숙해지면 DNS 서버 두고 사이즈를 좀 더 키워보고 싶다. GCP VM 인스턴스 스펙과 예상 비용 책에서 권장하는 주키퍼와 카프..
책에서는 2장에서 실습 환경 구성을 하고, 3장부터 실습을 하면서 카프카 기본 개념을 설명한다. 그런데 환경 구성에 필요한 VM 인스턴스만 7개이다 보니 기본 구조와 용어를 먼저 이해하고 구축해보는 게 더 좋겠다는 생각이 들었다. 그래서 이번에는 용어만 간단하게 정리해보았다. 기본 개념과 구조 스터디하는 책의 2~3장과 데브원영님의 을 기반으로 내가 이해한 카프카의 구조를 그려보았다. 전체 구조를 이해하기까지 시간이 많이 걸렸는데, 이렇게 그려놓고 보니 생각보다 간단한 구조인 것 같다. 프로듀서Producer : 카프카에 메시지를 만들어서 전달하는 클라이언트를 총칭 컨슈머Consumer : 카프카로부터 데이터를 받아 소비하는 클라이언트 카프카Kafka 또는 카프카 클러스터Kafka Cluster : 프로..
"카프카를 공부할 거야"라고 했더니 "갑자기 프란츠 카프카는 왜?"라는 말을 들었다. 그 카프카가 아니라 다른 카프카라고 설명하려는데 말문이 막혔다. 대용량 데이터를 처리할 때 쓰는 건데, 그러니까... 이제부터 공부하려고! 라고 얼버무리고 보니 이 정도로 아는 게 없다는 게 부끄러웠다. 그래서 카프카 스터디를 시작하기에 앞서 카프카가 왜 중요한지 알아보았다. 스터디는 책만 출판사의 를 기반으로 진행하고, 공부하면서 참고한 자료는 하단에 첨부해놓았다. 카프카 Kafka 아파치 카프카는 정말 프란츠 카프카Franz Kafka에서 따온 이름이라고 한다. 아파치 카프카를 만든 제이 크렙스Jay Kreps가 평소에 프란츠 카프카를 존경했다고.. 아무튼, 카프카 소개를 찾아보면 이 세 가지 키워드가 눈에 띈다. ..