로그(log.segment.bytes) -> 바이트 단위 설정, 기본값 1GB, 최대 세그먼트 크기 지정
시간(log.roll.ms(hours)) -> 시간 단위 설정, 기본 7일, 다음 파일로 넘어가는 시간 주기
오프셋 -> 레코드의 고유한 번호, 최초 오프셋 이름이 파일 이름
active segment -> 사용가능한 가장 최근 세그먼트(읽고있는, 쓰기가 일어나고 있는...)
log.retention.check.interval.ms
-> 세그먼트가 삭제 영억에 들어왔는지 확인하느 간격(기본 5분)
retention.ms
-> 세그먼트를 보유할 최대 기간(보통 3일)
retention.bytes
-> 파티션당 로그 적재 바이트 값
오프셋 수정 X
레코드 수정, 삭제 불가능
cleanup.policy=compact
테일 영역 -> 압축 완료된 레코드, 클린 로그라고 부른다. 중복 메시지 키 x
헤드 영역 -> 압축 전 레코드, 더티 로그, 중복 메시지 키 0
압축이 일어나면 중간에 오프셋이 빈다.
min.cleanable.dirty.ratio
복제 갯수가 늘어나면 저장 용량도 늘어나야함
컨슈머, 프로듀서는 리더와 통신
팔로우는 복제 역할
만약 유실되어도 상관이 없는 데이터면 replication factor 1로 설정(기본값)
ex)실시간 차량데이터...
ISR(In-Sync-Replicas) -> 리더와 팔로워 파티션의 오프셋 크기가 같다(팔로워 파티션 동기화 완료)
만약 데이터를 모두 복제하지 못한 상태이면..?
unclean.leader.election.enable=true
unclean.leader.election.enable=flase
토픽에 따라 설정 가능!!