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


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

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

공부 시작

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

공부 종료

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

clip18

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


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

Apache Kafka의 로그 파일 시스템에 대한 심화학습이다.

처음에는 기본개념에서 배웠던 카프카의 기본 구조에 대한 리바이벌 및 상세라.. 요약할 필요가 없어보인다...
처음에는 토픽 파티션 세그먼트의 개념에 대해 다시 설명한다.

이후 로그 세그 먼트 파일의 물리적인 방식에 대해 설명하면서 실제로 어떻게 저장하는지 설명한다.
브로커의 server.properties 파일에서 log.dirs 파라미터로 저장 위치를 지정할 수 있다는 점, 그리고 여러 디렉토리를 지정할 수 있다는 점이 포인트이고 comma로 구분한다는 것도 기억할만하다. 각 토믹과 파티션은 log.dirs 아래에 하위 디렉토리로 구성되는 부분이다.

파티션 디렉토리의 로그 파일들의 파일명에도 의미가 있다. 파일명은 각 offset의 시작 값을 가지고  있다.
따라서 각 파일들 명만 봐도 이 파일이 어느 offset에서 어디까지의 데이터를 저장하고 관리하는지를 알 수 있다.

파티션 디렉토리 안에 있는 여러 종류의 파일들도 처음 알게 되었다.
확장자 혹은 파일명으로 구분 되는 거 같은데 최소 4가지 타입이다.

  1. Log Segment File – 메시지와 metadata를 저장(가장 중요)
    1. 해당 세그 먼트 파일의 저장된 첫번째 메시지의 offset이 파일명
  2. Index File – 각 메시지의 Offset을 Log Segment 파일의 Byte 위치에 매핑(인덱스)
  3. Time-based Index File – 각 메시지의 timestamp를 기반으로 메시지를 검색하는 데 사용(시간 기반 인덱스)
  4. Leader Epoch Checkpoint File – Leader Epoch과 관련 Offset 정보를 저장(리더 교체 및 시대 바뀜 정보와 당시 offset)


기본 시간에 배웠던 로그 세그먼트 파일의 롤링 전략에 대해 조금 더 자세히 설명한다.
 log.segment.bytes나 log.roll.ms 같은 파라미터들을 통해 새로운 세그먼트 파일을 만드는 기준을 설정할 수 있다는 점의 복습과 함께
새로운 부분 (인덱스 파일 사이즈도 롤링 대상이 될 수 있다는 부분 등)도 인상적이다.
여전히 실무에서 필요한....이런 설정들이 실제로 시스템의 성능과 관리에 어떤 영향을 미치는지는 알려주지 않는다.

체크포인트 파일이라는 처음 배우는 부분도 나온다.
각 Broker에는 2개의 체크 포인트 파일이 존재하며, 둘다 logs.dirs 디렉토리에 위치한다.

  1. replication-offset-checkpoint
    1. 마지막으로 커밋된 메시지의 ID인 High Water Mark
    2. 우리가 계속 Replica 장애에서 보았던 그 High Water Mark가 저장된 곳이다
    3. 시작시 Follower가 이를 사용하여 Commit되지 않은 메시지를 Truncate
  2. recovery-point-offset-checkpoint
    1. 데이터가 디스크로 Flush된 지점
    2. 복구 중 Broker는 이 시점 이후의 메시지가 손실되었는지 여부를 확인

심화인데 실무 예시가 없어서... 계속 목마르다.

예를 들어, 실제 대규모 시스템에서는 로그 세그먼트 파일의 크기를 어떻게 설정하는 것이 좋은가? 너무 작게 설정하면 파일이 너무 많아질 것 같고, 너무 크게 설정하면 관리가 어려울 것 같은데, 이런 trade-off를 어떻게 결정하는가?
계속 테스트하면 알 수 있겠지만. 그래도 맨땅에 해딩안하려고 비싼 돈 주고 강의 보는 건데... 좀 알려줘.. ㅠㅠ


또 하나 궁금한 점은, Kafka의 이런 로그 파일 구조가 다른 메시징 시스템과 비교해서 어떤 장단점이 있는지에 대해서다.
적어도 시간 기반 인덱스는 장점이 확 있어 보이지만... 다른 부분에 대한 부분은 설명이 조금 부족해 보인다.

블로그 이미지

감동맨

rkaehdaos의 블로그

,