LabHub
배우기 러닝패스 코스

주문이 두 번 도착했고 한 번은 사라졌다 · 무엇을 남기고 무엇을 버리나 · 퀴즈

퀴즈: 토픽 설정

LabHub 에서 이어서 보기

문항 6개. 정답과 해설은 풀어 본 뒤에 보여 드립니다.

  1. `retention.ms=60000` 을 주었는데 5분이 지나도 옛 레코드가 남아 있다. 문서로 설명되는 원인은?

    1. retention.ms 는 밀리초가 아니라 초 단위다
    2. 삭제는 세그먼트 단위이고 활성 세그먼트는 지워지지 않으며, 검사도 log.retention.check.interval.ms(기본 5분)마다만 한다
    3. cleanup.policy 를 compact 로 바꿔야 시간 보존이 동작한다
    4. retention.bytes 가 -1 이면 retention.ms 가 무시된다
  2. 로그 압축이 보장하는 것으로 설계 문서에 있는 것은?

    1. 압축 뒤 오프셋이 0 부터 다시 매겨져 빈틈이 없다
    2. 같은 키의 레코드가 하나로 합쳐지며 값은 모든 갱신을 이어 붙인 것이다
    3. 순서는 바뀌지 않고 오프셋도 바뀌지 않으며, 처음부터 읽으면 모든 키의 최종 상태를 본다
    4. 압축된 토픽은 시간 보존이 함께 적용되지 않는다
  3. 압축 토픽에서 키를 지우려면 무엇을 보내는가?

    1. 값이 null 인 레코드(tombstone) — 이전 레코드를 지우게 하고 delete.retention.ms 뒤 스스로 사라진다
    2. 값이 빈 문자열인 레코드 — 브로커가 삭제로 해석한다
    3. kafka-configs.sh 로 그 키를 delete-config 에 적는다
    4. 키 없는 레코드 — 직전 키의 삭제로 처리된다
  4. 복제 계수 3, `min.insync.replicas=2`, `acks=all` 인 토픽에서 ISR 이 리더 하나뿐이 됐다. 프로듀서의 쓰기는?

    1. 리더가 쓰고 성공으로 답한다 — 팔로워는 나중에 따라잡는다
    2. NotEnoughReplicas 계열 예외로 실패한다 — ISR 이 최소 수보다 적다
    3. acks 가 자동으로 1 로 내려가 성공한다
    4. 브로커가 ISR 밖의 복제본을 리더로 뽑아 계속 쓴다
  5. `min.insync.replicas` 의 기본값과, 그 값이 뜻하는 것은?

    1. 3 — 복제 계수와 같아 언제나 전부 확인한다
    2. 2 — 과반 확인이 기본이다
    3. 1 — 리더 하나만 확인하면 되므로 acks=all 이어도 팔로워 확인은 보장되지 않는다
    4. 0 — acks 설정이 없으면 확인을 기다리지 않는다
  6. 실행 중인 토픽의 `retention.ms` 를 바꾸는 방법으로 운영 문서가 적은 것은?

    1. 토픽을 삭제한 뒤 `--create --config retention.ms=<값>` 으로 다시 만들어 설정을 준다
    2. 브로커의 server.properties 에 `log.retention.ms=<값>` 을 적고 브로커를 재시작한다
    3. `kafka-topics.sh --alter --topic <토픽> --config retention.ms=<값>` 으로 토픽 도구에서 바꾼다
    4. `kafka-configs.sh --entity-type topics --entity-name <토픽> --alter --add-config retention.ms=<값>`