본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다.
https://bit.ly/4hTSJNB
I. 학습 인증샷 4장 이상 포함
1. 공부시작: 날짜, 시각 다 나오도록
2. 공부 종료: 날짜 시각 다 나오도록
3. 1개 클립 수강 (강의장 목록 캡쳐, 수강화면이 보이지 않도록) 1장
4. 학습 인증샷 1장(필기 촬영이나 작업물 촬영)
II. 학습 후기 700자 이상 (공백 제외)
이번 강의는 Kafka의 핵심 구성 요소 중 Producer에 초점을 맞춰 기본 개념과 동작 원리를 설명을 하고 있다.
요약
- Producer 역할
- Kafka Topic에 메시지(Record)를 전송하는 애플리케이션
- Consumer와 완전히 분리되어 독립적으로 동작(Decoupling)
- 메시지 구조는 Header, Key, Value로 구성되며 Byte Array 형식으로 저장
- Producer의 주요 컴포넌트
- Serializer
- 데이터를 바이트 배열로 변환(Producer 측)
- 각 데이터 타입당 맞는 Serializer가 존재하는 듯 하다.
- Partitioner
- 메시지의 Key 기반으로 Topic Partition 지정
- Key exist: `Hash(Key) % Partition 수` 방식
- Key null: Sticky Partitioner로 처리
- Serializer
- 일단 외워 ㅋ
- 일단 일반적으로 아는 key-value에서는 key는 무조건 필수값이다. 하지만 카프카에서는 topic과 value가 필수값이다.
- 2.4이전에는 Key가 없으면 메시지가 라운드 로빈 방식으로 파티션에 분배되는 것으로 설명되고
이후에는 Sticky 가 default방식이다. - 실제 개발 환경에서 Key를 의도적으로 생략하는 경우가 있을까? 왜 key를 비울 수 있게 하는 거지?
이러면 메시지 순서가 보장이 안되지 않나? 알면 알수록 더 모르겠다. - 일단 나는 왠만하면 key를 써야 할 것 같다.
- Avro라는 말이 자연스럽게 나오는데 처음 듣는 말이라서 찾아보았다.
- Avro
- Apache Kafka에서 자주 사용되는 데이터 직렬화 시스템
- JSON 형식으로 정의된 스키마를 사용하여 데이터를 직렬화하고 역직렬화
- 데이터를 바이너리 형식으로 압축하여 저장하므로 네트워크 대역폭과 디스크 공간을 절약
- 스키마 변경에 유연하게 대응할 수 있어, 데이터 구조가 변경되어도 기존 데이터와의 호환성을 유지
- 다양한 프로그래밍 언어에서 사용 가능
- 아직은...모르니 이정도로
'패캠챌린지 > Kafka EcoSystem - 진행중' 카테고리의 다른 글
패스트캠퍼스 환급챌린지 10일차 : 한번에 끝내는 KafkaEcosystem 강의 후기 (0) | 2025.03.14 |
---|---|
패스트캠퍼스 환급챌린지 9일차 : 한번에 끝내는 KafkaEcosystem 강의 후기 (0) | 2025.03.13 |
패스트캠퍼스 환급챌린지 7일차 : 한번에 끝내는 KafkaEcosystem 강의 후기 (1) | 2025.03.11 |
패스트캠퍼스 환급챌린지 6일차 : 한번에 끝내는 KafkaEcosystem 강의 후기 (0) | 2025.03.10 |
패스트캠퍼스 환급챌린지 5일차 : 한번에 끝내는 KafkaEcosystem 강의 후기 (0) | 2025.03.09 |