Kafka 3

Kafka partition consumer

Partition과 Consumer의 관계기본 규칙Partition은 하나의 Consumer만 접근 가능Consumer는 여러 개의 Partition 소비 가능설계 시 고려사항Partition의 개수 >= Consumer 인스턴스의 개수 유지Consumer 개수가 Partition 개수보다 많으면 일부 Consumer는 유휴 상태가 됨하나의 Partition에 하나의 Consumer가 담당하는 것이 이상적Consumer 수가 부족한 경우 하나의 Consumer가 여러 Partition 처리 가능주의사항Partition 확장 시 고려사항Partition은 한번 증가시키면 다시 줄일 수 없음처리량을 고려하여 신중하게 Partition과 Consumer 개수 설정 필요테스트를 통한 최적의 개수 파악 권장성능 ..

Kafka 2025.03.02

Kafka 기본 용어

토픽(Topic)데이터의 주제를 나타내며, 이름으로 분리된 로그.메시지를 보낼 때는 특정 토픽을 지정합니다.파티션(Partition)토픽은 하나 이상의 파티션으로 나누어질 수 있음.각 파티션은 순서가 있는 연속된 메시지의 로그.파티션은 병렬 처리를 지원하고, 데이터의 분산 및 복제를 관리.1 파티션 ← 1 컨슈머 접근 가능레코드(Record)레코드는 데이터의 기본 단위로 키와 값(key-value pair) 구성.오프셋(Offset)특정 파티션 내의 레코드 위치를 식별하는 값.프로듀서(Producer)데이터를 토픽에 보내는 역할.메시지를 생성하고 특정 토픽으로 전송.컨슈머(Consumer)토픽에서 데이터를 읽는 역할.특정 토픽의 메시지를 가져와서(poll) 처리.컨슈머 그룹은 여러 개의 컨슈머 인스턴스를..

Kafka 2025.03.02

Kafka consumer 사용 위치 비교

FastAPI 내부에 구성비동기 처리애플리케이션의 이벤트 루프를 활용하여 메시지 소비asyncio.create_task()를 통해 백그라운드에서 메시지 소비 가능웹 서버와 메시지 처리를 동시에 수행 가능메모리 공유가 용이하여 상태 관리 간편장점단일 애플리케이션 내에서 웹 요청과 메시지 처리 통합 가능리소스 효율적 사용 가능복잡한 아키텍처 불필요개발 및 배포 과정 단순화단점메시지 처리 지연 가능성웹 서버 성능에 메시지 소비 영향복잡한 메시지 처리에 제한적스케일링에 한계 존재장애 발생 시 전체 서비스 영향독립 Consumer 구성동기/비동기 선택 가능전통적인 동기 방식의 무한 루프 사용 가능멀티스레딩이나 별도의 프로세스로 구현 가능메시지 소비에 집중된 애플리케이션 구현다양한 처리 전략 구현 용이장점메시지 처..

Kafka 2025.03.02