안녕하세요. 오늘은 kafka 카프카에 대해서 서명드리겠습니다.
카프카: 대용량 실시간 메시징 시스템 이해하기
1. 카프카 Partition: 늘리기와 줄이기
파티션의 늘리기와 고려사항
파티션을 늘리면 처리량이 증가하지만, 파티션 수를 줄일 수 없기에 충분한 계획이 필요합니다. 또한, 파티션 수가 많아질수록 컨슈머 처리가 느려질 수 있으므로, 컨슈머 그룹의 조정도 중요합니다.
2. 카프카 레코드 저장: 최대 기간 설정
데이터 보존 관리
카프카에서는 레코드 저장 최대 기간을 설정하여, 일정 기간 동안 데이터 용량을 저장하거나 삭제하여 데이터 보존 기간을 관리할 수 있습니다.
3. 복제(replication)와 고가용성
카프카의 복제 아키텍처![Kafka 레코드 저장: 최대 기간 설정](https://solace.com/wp-content/uploads/2021/06/v1-kafka-vs-solace-blog-series-diagrams-7-1024x576.png)
복제를 통해 파티션의 데이터를 다수의 브로커에 저장하고, 고가용성을 보장합니다. 파티션의 복제는 브로커 중심으로 동작하며, ISR(In-Sync Replica)이 복제의 정상 여부를 확인합니다.
4. 카프카 Broker: 클러스터의 구성 단위
브로커 개수와 성능
일반적으로 3개의 브로커 단위로 구성되며, 브로커의 개수와 성능은 카프카의 전체적인 처리량과 성능에 영향을 미칩니다.
5. 카프카의 데이터 구조: Topic과 Partition
토픽과 파티션의 이해![Kafka Broker](https://i.stack.imgur.com/qhGRl.png)
데이터는 토픽이라는 단위로 구성되며, 토픽은 파티션으로 나뉩니다. 파티션의 복제로 고가용성을 보장하며, 브로커가 다운되어도 데이터의 유실 없이 서비스를 계속할 수 있습니다.
6. 프로듀서와 컨슈머의 역할
메시지 전송과 수신
프로듀서는 메시지를 보내고 ACK를 받으며, 컨슈머는 파티션의 메시지를 구독하고 처리합니다. 또한, ACK 옵션에 따라 데이터의 유실 여부와 고가용성을 조절할 수 있습니다.
7. 카프카 Streams 처리
실시간 데이터 처리![Kafka Streams](https://www.cuelogic.com/wp-content/uploads/2021/06/kafka-streams-api.jpg)
![Kafka Streams](https://www.cuelogic.com/wp-content/uploads/2021/06/Kafka-Streams.jpg)
카프카는 스트림 처리 기능도 제공합니다. 데이터를 스트림으로 처리하고 결과를 다시 스트림으로 전달하여 실시간 데이터 처리와 분석을 지원합니다.
[Kafka] 카프카란? 2편 – 심화편(실습) 을 클릭하시면 다음 내용을 보실 수 있습니다.