2장. 주제 구성 속성
cleanup.policytype: list
Default: delete
Valid Values: [compact, delete]
서버 기본 Property: log.cleanup.policy
Importance: medium
이 구성은 로그 세그먼트에 사용할 보존 정책을 지정합니다. "삭제" 정책(기본값)은 보존 시간 또는 크기 제한에 도달하면 이전 세그먼트를 삭제합니다. "compact" 정책은 로그 압축 을 활성화하므로 각 키의 최신 값이 유지됩니다. 두 정책을 쉼표로 구분된 목록(예: "삭제,compact")으로 지정할 수도 있습니다. 이 경우 보존 시간 및 크기 구성별로 이전 세그먼트가 삭제되지만 보존 세그먼트는 압축됩니다.
compression.typetype : string
Default: producer
Valid Values: [uncompressed, zstd, lz4, snappy, gzip, producer]
서버 기본 Property: compression.type
Importance: medium
지정된 항목에 대한 최종 압축 유형을 지정합니다. 이 설정에서는 표준 압축 코드cs('gzip', 'snappy', 'lz4', 'zstd')를 허용합니다. 또한 압축 없이 'uncompressed'를 사용할 수 있으며, 'producer'는 생산자가 설정한 원래 압축 코드c를 유지합니다.
delete.retention.mstype : long
Default: 86400000 (1 day)
Valid Values: [0,…]
서버 기본 속성: log.cleaner.delete.retention.ms
Importance: medium
압축된 항목에 대한 삭제 tombstone 마커를 유지해야 하는 시간입니다. 또한 이 설정은 최종 단계의 유효한 스냅샷을 가져오기 위해 오프셋 0에서 시작하는 경우 소비자가 읽기를 완료해야 하는 시간에 바인딩됩니다(검사를 완료하기 전에 다른th delete tombstones가 수집될 수 있음).
file.delete.delay.mstype : long
Default: 60000 (1 minute)
Valid Values: [0,…]
서버 기본 속성: log.segment.delete.delay.ms
Importance: medium
파일 시스템에서 파일을 삭제하기 전에 대기하는 시간입니다.
flush.messagestype : long
Default: 9223372036854775807
Valid Values: [1,…]
서버 기본 Property: log.flush.interval.anchor
Importance: medium
이 설정을 사용하면 로그에 작성된 데이터의 fsync를 강제 적용할 간격을 지정할 수 있습니다. 예를 들어 이 값이 1로 설정된 경우 모든 메시지 후에 fsync를 실행합니다. 5개의 메시지마다 동기화하면 5개 메시지마다 fsync를 사용합니다. 일반적으로 이 값을 설정하지 않고 조정을 통해 운영 체제의 백그라운드 플러시 기능을 더 효율적으로 사용할 수 있도록 하는 것이 좋습니다. 이 설정은 주제별로 덮어쓸 수 있습니다( 주별 구성 섹션참조).
flush.mstype : long
Default: 9223372036854775807
Valid Values: [0,…]
서버 기본 Property: log.flush.interval.ms
Importance: medium
이 설정을 사용하면 로그에 작성된 데이터의 fsync를 강제 적용할 시간 간격을 지정할 수 있습니다. 예를 들어 이 값이 1000으로 설정된 경우 1000ms가 통과한 후 fsync를 실행합니다. 일반적으로 이 값을 설정하지 않고 조정을 통해 운영 체제의 백그라운드 플러시 기능을 더 효율적으로 사용할 수 있도록 하는 것이 좋습니다.
follower.replication.throttled.replicastype : list
Default: ""
Valid Values: [partitionId]: [partitionId]:[partitionId]: [brokerId],…
Server Default Property: follower.replication.throttled.replicas
Importance: medium
로그 복제가 후속 측에 제한되어야 하는 복제본 목록입니다. 목록은 [ovnId]:[BrokerId],[BrokerId]:[BrokerId]:… 형식으로 복제본 세트를 설명해야 합니다. 또는 와일드카드 '*'를 사용하여 이 항목의 모든 복제본을 조정할 수 있습니다.
index.interval.bytestype : int
Default: 4096 (4 kibibytes)
Valid Values: [0,…]
서버 기본 Property: log.index.interval.bytes
Importance: medium
이 설정은 Kafka가 오프셋 인덱스에 인덱스 항목을 추가하는 빈도를 제어합니다. 기본 설정을 사용하면 거의 모든 4096바이트마다 메시지를 인덱싱할 수 있습니다. 인덱싱을 사용하면 읽기가 로그의 정확한 위치에 더 가깝지만 인덱스를 더 크게 만들 수 있습니다. 이를 변경할 필요가 없습니다.
leader.replication.throttled.replicastype : list
Default: ""
Valid Values: [partitionId]: [partitionId]:[partitionId]:[brokerId],…
Server Default Property: leader.replication.throttled.replicas
Importance: medium
리더 측에서 로그 복제를 제한해야 하는 복제본 목록입니다. 목록은 [ovnId]:[BrokerId],[BrokerId]:[BrokerId]:… 형식으로 복제본 세트를 설명해야 합니다. 또는 와일드카드 '*'를 사용하여 이 항목의 모든 복제본을 조정할 수 있습니다.
max.compaction.lag.mstype : long
Default: 9223372036854775807
Valid Values: [1,…]
서버 기본 Property: log.cleaner.max.compaction.lag.ms
Importance: medium
메시지가 로그에서 압축할 수 없는 상태로 유지되는 최대 시간입니다. 압축되는 로그에만 적용할 수 있습니다.
max.message.bytestype: int
Default: 1048588
Valid Values: [0,…]
서버 기본 속성: message.max.bytes
Importance: medium
Kafka에서 허용하는 가장 큰 레코드 배치 크기( 압축이 활성화된 경우 압축 후). 이 기능이 증가하고 0.10.2보다 오래된 사용자가 있는 경우 소비자의 가져오기 크기도 증가하여 레코드 일괄 처리를 가져올 수 있습니다. 최신 메시지 형식 버전에서 레코드는 항상 효율성을 위해 일괄 처리로 그룹화됩니다. 이전 메시지 형식 버전에서는 압축되지 않은 레코드가 일괄 처리로 그룹화되지 않으며 이 제한은 해당 경우 단일 레코드에만 적용됩니다.
message.format.versiontype : string
Default: 3.0-IV1
유효한 값: [0.8.0, 0.8.1, 0.8.2, 0.9.0, 0.10.0-IV1, 0.10.1-IV0, 0.10.1-IV1, 0.10.1-IV2, 0.10.2-1.0-IV0, 0.11.0-IV0, 0.11.0-IV0 0.11.0-iv1, 0.11.0-iv2, 1.0-iv0, 1.1-iv0, 2.0-iv0, 2.1-iv0, 2.1-iv0, 2.1-iv1, 2.1-iv2, 2.2-iv0, 2.2-iv1, 2.3-iv0, 2.3-iv1, 2.4-iv0, 2.4-iv1, 2.4-iv1 2.5-IV0, 2.7-IV0, 2.7-IV0, 2.7-IV1, 2.7-IV2, 2.8-IV1, 3.0-IV1, 3.0-IV1, 3.1-IV0, 3.3-IV0, 3.3-IV0, 3.3-IV1, 3.3-IV2, 3.3-IV3]
서버 기본 Property: log.message.format.version 매체:
브로커가 로그에 메시지를 추가하는 데 사용할 메시지 형식 버전을 지정합니다.
inter.broker.protocol.version이3.0이상인 경우 이 구성의 값은 항상 3.0이라고 가정합니다(실제 config 값은 무시됨). 그렇지 않으면 값은 유효한 ApiVersion이어야 합니다. 다음은 0.10.0, 1.1, 2.8, 3.0입니다. 특정 메시지 형식 버전을 설정하면 디스크의 모든 기존 메시지가 지정된 버전보다 작거나 같아야 합니다. 이 값을 잘못 설정하면 이해할 수 없는 형식으로 메시지를 수신하므로 이전 버전의 소비자가 중단됩니다.message.timestamp.difference.max.mstype : long
Default: 9223372036854775807
Valid Values: [0,…]
서버 기본 Property: log.message.timestamp.difference.max.ms
Importance: medium
브로커가 메시지를 수신할 때 타임스탬프 사이에 허용되는 최대 차이점은 메시지에 지정된 타임스탬프입니다. message.timestamp.type=CreateTime인 경우 타임스탬프의 차이가 이 임계값을 초과하면 메시지가 거부됩니다. message.timestamp.type=LogAppendTime인 경우 이 구성은 무시됩니다.
message.timestamp.typetype : string
Default: CreateTime
Valid Values: [CreateTime, LogAppendTime]
서버 기본 속성: log.message.timestamp.type
Importance: medium
메시지의 타임스탬프가 메시지 생성 시간인지 또는 로그 추가 시간인지를 정의합니다. 값은
CreateTime또는LogAppendTime이어야 합니다.min.cleanable.dirty.ratiotype : double
Default: 0.5
Valid Values: [0,…,1]
서버 기본 속성: log.cleaner.min.cleanable.ratio
Importance: medium
이 구성에서는 로그 압축기가 로그를 정리하는 빈도를 제어합니다( 로그 압축 이 활성화된 경우). 기본적으로 로그의 50% 이상이 압축된 로그 정리를 피할 수 있습니다. 이 비율은 중복에 의해 로그에서 최대 공간을 제한합니다 (대부분 50%의 로그가 중복될 수 있음). 비율이 높아지면 정리가 더 적고 효율적으로 수행되지만 로그에서 더 무축된 공간을 의미합니다. max.compaction.lag.ms 또는 min.compaction.lag.ms 구성도 지정하는 경우 로그 압축기에서 로그를 압축할 수 있는 것으로 간주합니다. (i) 더러미 비율 임계값이 충족되고 로그는 최소 min.compaction.lag.ms 기간 동안 더러움(uncompacted) 레코드를 가지고 있습니다. 또는 (ii) 로그에서 최대 max.compaction.lag.ms 기간에 더 이상 이상한(uncompacted) 레코드가 있는 경우.
min.compaction.lag.mstype : long
Default: 0
Valid Values: [0,…]
서버 기본 속성: log.cleaner.min.compaction.lag.ms
Importance: medium
메시지가 로그에 영향을 받지 않은 상태로 유지되는 최소 시간입니다. 압축되는 로그에만 적용할 수 있습니다.
min.insync.replicastype: int
Default: 1
Valid Values: [1,…]
서버 기본 속성: min.insync.replicas
Importance: medium
생산자가 acks를 "all"(또는 "-1")로 설정하면 이 구성은 쓰기를 성공으로 간주하기 위해 쓰기를 승인해야 하는 최소 복제본 수를 지정합니다. 이 최소값을 충족할 수 없는 경우 생산자는 예외 (NotEnoughReplicas 또는 NotEnoughReplicasAfterAppend)를 생성합니다. 함께 사용하면
min.insync.replicas및acks를 사용하면 더 큰 주의력을 유지할 수 있습니다. 일반적인 시나리오는 복제 요소가 3인 항목을 생성하고min.insync.replicas를 2로 설정하고 "all"의acks로 생성하는 것입니다. 이렇게 하면 대부분의 복제본이 쓰기를 받지 못하는 경우 생산자가 예외를 발생시킵니다.사전 할당type: boolean
Default: false
서버 기본 속성: log.preallocate
Importance: medium
새 로그 세그먼트를 생성할 때 디스크의 파일을 미리 할당해야 하는 경우 True입니다.
retention.bytestype: long
Default: -1
서버 기본 속성: log.retention.bytes
가져오기: 중간
이 설정은 "삭제" 보존 정책을 사용하는 경우 공간을 확보하기 위해 이전 로그 세그먼트를 삭제하기 전에 파티션의 최대 크기를 제어합니다. 기본적으로 크기 제한은 시간 제한만 없습니다. 이 제한은 파티션 수준에서 적용되므로 주제 보존 바이트를 계산하기 위한 파티션 수를 곱합니다.
retention.mstype : long
Default: 604800000 (7 days)
Valid Values: [-1,…]
Server Default Property: log.retention.ms
Importance: medium
이 설정은 "삭제" 보존 정책을 사용하는 경우 이전 로그 세그먼트를 삭제하여 공간을 확보하기 전에 로그를 보존하는 최대 시간을 제어합니다. 이는 소비자가 데이터를 얼마나 빨리 읽을 지에 대한 SLA를 나타냅니다. -1로 설정하면 시간 제한이 적용되지 않습니다.
segment.bytestype : int
기본값: 1073741824 (1GB)
유효 값: [14,…]
서버 기본 Property: log.segment.bytes
Importance: medium
이 구성은 로그의 세그먼트 파일 크기를 제어합니다. 보존 및 정리는 항상 한 번에 파일을 수행하므로 세그먼트 크기가 클수록 파일 수가 줄어들지만 보존에 대한 세분화된 제어가 줄어듭니다.
segment.index.bytestype : int
기본값: 10485760 (10 메비 바이트)
유효 값: [4,…]
서버 기본 속성: log.index.size.max.bytes
가져오기: 중간
이 구성은 오프셋을 파일 위치에 매핑하는 인덱스 크기를 제어합니다. 이 인덱스 파일을 미리 할당하고 로그가 롤아웃된 후에만 축소됩니다. 일반적으로 이 설정은 변경할 필요가 없습니다.
segment.jitter.mstype: long
Default: 0
Valid Values: [0,…]
서버 기본 속성: log.roll.jitter.ms
Importance: medium
세그먼트 롤링의 태그를 덮어쓰지 않도록 예약된 세그먼트 롤 시간에서 최대 무작위 지터가 찼습니다.
segment.mstype : long
Default: 604800000 (7 days)
Valid Values: [1,…]
서버 기본 Property: log.roll.ms
Importance: medium
이 설정은 보존이 이전 데이터를 삭제하거나 압축할 수 있도록 세그먼트 파일이 가득 차지 않은 경우에도 Kafka가 강제로 로그를 롤오버하는 기간을 제어합니다.
unclean.leader.election.enabletype: boolean
Default: false
서버 기본 속성: unclean.leader.election.enable
가져오기: medium
이렇게 하면 데이터 손실이 발생할 수 있지만 마지막 수단으로 ISR 세트에서 리더로 선택되지 않은 복제본을 활성화할지 여부를 나타냅니다.
message.downconversion.enabletype: boolean
Default: true
Server Default Property: log.message.downconversion.enable
Importance: low
이 구성에서는 사용 요청을 충족하기 위해 메시지 형식의 다운-conversion이 활성화되어 있는지 여부를 제어합니다.
false로 설정하면 브로커는 이전 메시지 형식이 예상되는 소비자에 대해 다운 컨버전을 수행하지 않습니다. 브로커는 이전 클라이언트의 요청을 소비하기 위해UNSUPPORTED_VERSION오류로 응답합니다. 이 구성은 복제에 필요한 메시지 형식 변환에는 적용되지 않습니다.