반응형 Kafka3 consumer와 partition 의 비율 컨슈머 그룹의 컨슈머 인스턴스들은 하나의 동일한 토픽을 구독한다. 파티션의 수 크면 컨슈머에 할당되는 파티션이 일정하지 않아 컨슈머에서 처리해야 하는 양이 불균형하게 되고 일부 컨슈머만 부하가 가중될 수 있다. 반대로 컨슈머가 파티션의 숫자보다 크면 파티션이 할당되지 않은 컨슈머 인스턴스가 생기고 계속 대기 상태로 남아 자원을 소모하면서도 작업을 수행하지 않게 되므로 자원의 낭비라고 볼 수 있다. 컨슈머 그룹 내의 컨슈머 인스턴스와 그 그룹이 구독하는 토픽의 파티션의 수는 동일한게 가장 이상적이지만 파티션이 많게 설계한 경우 파티션의 수를 컨슈머 수의 배수로 설정하는 것이 좋다. 이런 설정은 컨슈머 사이에 작업을 균등하게 분배할 수 있게 해주며 각 컨슈머가 처리해야 할 파티션의 수를 최대한 균일하게.. 2024. 2. 17. 카프카(Kafka)의 기본 개념 카프카를 학습하기 전에 왜 카프카를 사용하는지 궁금해서 카프카의 탄생부터 알아보았다. 카프카(kafka)의 탄생 2011년, 구인/구직 및 동종업계의 동향을 살펴볼 수 있는 소셜 네트워크 사이트인 '링크드인(LinkedIn)'에서 출발한 기술로 파편화된 데이터를 수집 및 분배 아키텍처를 운영하는데 큰 어려움을 겪었다.데이터를 생성하고 적재하기 위해서는 데이터를 생성하는 소스 애플리케이션과 데이터가 최종 적재되는 타깃 애플리케이션을 연결해야 한다.초기 운영 시에는 단방향 통신을 통해 소스 애플리케이션과 타깃 애플리케이션으로 연동하는 소스코드를 작성했고 아키텍처가 복잡하지 않았으므로 운영에 문제가 없었으나 시간이 지날수록 아키텍처는 거대해지고 소스 애플리케이션과 타깃 애플리케이션의 개수가 점점 많아지면서 .. 2024. 2. 11. Kafka와 MongoDB를 연동하는 자바 애플리케이션 구축 가이드 이 글에서는 프로듀서 애플리케이션에서 카프카 토픽에 메시지를 전송하고 컨슈머는 메시지를 MongoDB에 적재하는 과정을 실습한다. Docker는 리눅스를 기반으로 하기때문에 윈도우 환경에서 리눅스를 사용할 수 있도록 도와주는 WSL2 ( Windows Subsystem for Linux 2 )를 활성화하고 리눅스 우분투와 도커를 설치 이후 과정을 실습했다. 1. Docker-Compose.yml 작성 도커 컨테이너에 카프카와 주키퍼를 실행하기 위해 Docker-Compose.yml 을 작성한다. version: '3.8' services: zookeeper: image: wurstmeister/zookeeper:latest ports: - "2181:2181" # 주키퍼의 기본 포트 2181 kafka:.. 2024. 2. 10. 이전 1 다음 반응형