본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다.
https://bit.ly/4hTSJNB

 


I. 학습 인증샷 4장 이상 포함

1. 공부시작: 날짜, 시각 다 나오도록

공부시작

2. 공부 종료: 날짜 시각 다 나오도록

공부 끝

 

3. 1개 클립 수강 (강의장 목록 캡쳐, 수강화면이 보이지 않도록) 1장

강의클립6

4. 학습 인증샷 1장(필기 촬영이나 작업물 촬영)

이론 이야기 하다가 갑자기 스펙나오니까...햇갈림.. 그래도 슬라이드가 충실해서 도움이 많이 된다.


II. 학습 후기 700자 이상 (공백 제외)

이번 강의는 Apache Kafka의 핵심 구성 요소인 Topic, Partition, Segment를 설명한다.
갑자기 이론이야기 하다가 스펙나오니까 머리가 터질려고 해서 계속 구간반복하면서 이해했다...;

Topic, Partition, Segment 요약

  • Topic:
    • 메시지의 논리적 그룹
    • 카프카 클러스터 내에서 고유한 이름으로 식별된다.
  • Partition:
    • Topic을 분할한 물리적 단위
    • 불변성(Immutable), 추가 전용(Append-Only) 특성을 가진다.
    • 여러 Partition을 사용해 처리량(Throughput)을 확장이 가능하다.
  • Segment:
    • Partition을 구성하는 실제 파일
      • 기본 정책
        • log.segment.bytes(기본 1GB)
        • log.roll.hours(기본 168시간)
        • 위 조건에 따라  새로운 파일로 롤링
        • 168시간이 지나면 1G가 안채워졌어도 새로운 파일로 롤링된다
  • Offset:
    • Partition 내에서 메시지의 고유 위치
    • Consumer Lag(LOG-END-OFFSET과 CURRENT-OFFSET 차이)을 모니터링하는 데 사용.

"Producer와 Consumer는 서로를 알지 못하며, 독립적으로 동작한다.
Consumer Group 내 Consumer들은 협력해 메시지를 분산 처리한다."


  • 기존 강의에선 이론이나 아키텍처(msa, eda)등이 나오다가 갑자기 스펙이 나와서 그런지 용어가 눈에 안들어옴.
  • 왜 파티션이 필요한거지? 아직 강의 초반이라서 그런지 아직도 잘 모르겠다.
    파티션을 분할하면 컨슈머가 병렬로 메시지를 처리할 수 있어서 성능이 향상된다는 부분만 기억하고 패스;;
  • 컨슈머 그룹도 중요한 개념인듯 하다
    • 같은 그룹 내 Consumer들이 Partition을 나눠 처리한다는 것이 효율적인 듯 하다
  • 파티션 개수가 굉장히 중요한 것 같다.
    • 강사가 말하는 특히 운영상에 있어서 가능하면 변경하지 말라는 것은 처음에 신중하게 결정하고 픽스하라는 것이다
    • 그러면 이 개수는 어떻게 결정해야 할까?
    • 너무 많으면 관리가 복잡해질 것이고, 적으면 병렬성 장점을 얻지 못할 것 같다. 뭔가 이전 강의처럼 확실한 정의가 있으면 좋겠다.
    • 구간 단위로 이 구간이면 이 파티션수 이렇게...
  • 세그먼트 개념도 절반정도 알아들음
    • 기본 정책에 의해 오래된 세그먼트대신 긴규 세그먼트 대체하는 부분은 이해했다.
    • 정책이나 장비의 여유 공간에 따라서= 오래된 세그먼트를 삭제하거나 압축할 수 있을 것 같다.
    • 그럼 세그먼트 파일 (그것도 active)이 손상되면 복구는 어떻게 되는거지?
  • 결론
    • 기본개념 절반 알아들었지만 고민은 더 커진다..
    • 회사에 건의할지에 대해서는 운영단계의 저런 고려사항들을 더 알게 된 후로 미루자.
블로그 이미지

감동맨

rkaehdaos의 블로그

,