saay, hi
5) topic-Level configs 본문
- topic와 관련된 구성에는 서버 기본값과 선택적 주제별 재정의가 모두 가능함.
- 항목별 구성이 지정되지 않은 경우 서버 기본값이 사용되며, 재정의는 하나 이상의 옵션을 제공하여 topic 생성 시 설정할 수 있음
- 아래의 예제에서는 사용자 지정 최대 메시지 크기 및 플러시 속도를 사용하여 my-topic이라는 주제를 만듦
재정의는 나중에 alter configs 명령을 사용하여 변경하거나 설정할 수도 있음
bin/kafka-topics.sh --bootstrap-server localhost:9092 --create --topic my-topic --partitions 1 \
--replication-factor 1 --config max.message.bytes=64000 --config flush.messages=1
- 이 예제에서는 my-topic의 최대 메시지 크기를 업데이트하며. 주제에 설정된 재정의를 확인하려면 수행할 수 있음
> bin/kafka-configs.sh --bootstrap-server localhost:9092 --entity-type topics --entity-name my-topic
--alter --add-config max.message.bytes=128000
- 이 특성(Topic-Level Configs)에 대한 서버의 기본 구성은 서버 기본 특성 표제 아래에 기재. 지정된 서버 기본 구성 값은 명시적인 topic 구성 재정의 및 --config가 없는 경우에만 topic 에 적용.
bin/kafka-configs.sh --bootstrap-server localhost:9092 --entity-type topics --entity-name my-topic --describe |
옵션명 | default | 설명 |
importance : medium |
||
cleanup.policy |
delete | 로그 세그먼트에 사용할 보존 정책을 지정 "delete" 정책(기본값)은 보존 시간 또는 크기 제한에 도달하면 이전 세그먼트를 삭제함. "compact" 정책은 각 키에 대한 최신 값을 유지하는 로그 압축을 사용하도록 설정함. 쉼표로 구분된 목록(예: "delete,compact")으로 두 정책을 모두 지정할 수도 있음. 이 경우 이전 세그먼트는 보존 시간 및 크기 구성에 따라 삭제되고 보존된 세그먼트는 압축됨. 유효한 값 : delete, compat |
compression.type |
producer | 지정된 항목에 대한 최종 압축 유형을 지정 이 구성은 표준 압축 코덱('gzip', 'snappy', 'lz4', 'zstd')을 허용 유효한 값 : 'gzip', 'snappy', 'lz4', 'zstd' |
delete.retention.ms |
86400000 (1 day) | 압축된 로그 항목에 대한 삭제 표시 표식을 보존하는 데 걸리는 시간 또한 이 설정은 소비자가 최종 단계의 유효한 스냅샷을 얻을 수 있도록 오프셋 0에서 시작하는 경우 읽기를 완료해야 하는 시간에 대한 제한을 제공 (그렇지 않은 경우, 캔을 완료하기 전에 삭제 표시가 수집될 수 있음 ) |
file.delete.delay.ms |
60000 (1 minute) | 파일 시스템에서 파일을 삭제하기 전에 대기하는 시간 |
flush.messages |
9223372036854775807 | 이 설정을 사용하면 로그에 기록된 데이터의 fsync를 강제 실행할 간격을 지정할 수 있음 예를 들어, 이것이 1로 설정되면, 모든 메시지 뒤에 fsync를 할 것이며, 5 개라면 5 개의 메시지마다 fsync 할 것. 일반적으로 이를 설정하지 않고 내구성을 위해 복제를 사용하고 운영 체제의 백그라운드 플러시 기능을 허용하는 것이 더 효율적임 이 설정은 항목별로 재정의할 수 있음 유효한 값 : 1,... |
flush.ms |
9223372036854775807 | 이 설정을 사용하면 로그에 기록된 데이터의 fsync를 강제할 시간 간격을 지정할 수 있음 예를 들어 1000으로 설정된 경우 1000ms가 지난 후 fsync함 일반적으로 이를 설정하지 않고 내구성을 위해 복제를 사용하고 운영 체제의 백그라운드 플러시 기능을 허용하는 것이 더 효율적임 유효한 값 : 0,... |
follower.replication.throttled.replicas |
"" | 팔로워 측에서 로그 복제를 제한해야 하는 복제본 목록을 의미 목록은 [PartitionId]:[BrokerId],[PartitionId]:[BrokerId]:... 형식으로 복제본 집합을 설명해야 함 또는 와일드카드 '*'를 사용하여 이 항목에 대한 모든 복제본을 제한할 수 있음 유효한 값 : [partitionId]:[brokerId],[partitionId]:[brokerId],... |
index.interval.bytes |
4096 (4 kibibytes) | 이 설정은 Kafka가 오프셋 인덱스에 인덱스 항목을 추가하는 빈도를 제어함 기본 설정을 사용하면 대략 4096바이트마다 메시지를 인덱싱할 수 있음 인덱싱이 많을수록 읽기가 로그의 정확한 위치에 더 가깝게 이동할 수 있지만 인덱스가 더 커짐 ( 아마도 이것을 변경할 필요가 없을 것 ) 유효한 값 : 0,... |
leader.replication.throttled.replicas |
"" | 리더 측에서 로그 복제를 제한해야 하는 복제본 목록을 의미 목록은 [PartitionId]:[BrokerId],[PartitionId]:[BrokerId]:... 형식으로 복제본 집합을 설명해야 함 또는 와일드카드 '*'를 사용하여 이 항목에 대한 모든 복제본을 제한할 수 있음 유효한 값 : [partitionId]:[brokerId],[partitionId]:[brokerId],... |
local.retention.bytes |
-2 | 이전 세그먼트를 삭제하기 전에 파티션에 대해 증가할 수 있는 로컬 로그 세그먼트의 최대 크기를 의미 사용할 'retention.bytes' 값을 나타내며, 유효 값은 항상 'retention.bytes' 값보다 작거나 같아야 함 유효한 값 : -2,... |
local.retention.ms |
-2 | 로컬 로그 세그먼트가 삭제되기 전에 유지하는 시간(밀리초) 기본값은 -2이며, 'retention.ms' 값이 사용됨을 나타냄 유효 값은 항상 'retention.ms' 값보다 작거나 같아야 함 유효한 값 : -2,... |
max.compaction.lag.ms |
9223372036854775807 | 메시지가 로그에서 압축할 수 없는 상태로 유지되는 최대 시간 압축 중인 로그에만 적용됨 유효한 값 : 1,... |
max.message.bytes |
1048588 | Kafka에서 허용하는 가장 큰 레코드 배치 크기입니다(압축이 활성화된 경우 압축 후) 이 값이 증가하고 0.10.2보다 오래된 consumer가 있는 경우 consumer의 가져오기 크기도 늘려야 이 큰 레코드 배치를 가져올 수 있음 최신 메시지 형식 버전에서는 효율성을 위해 레코드가 항상 배치로 그룹화됨 이전 메시지 형식 버전에서 압축되지 않은 레코드는 일괄 처리로 그룹화되지 않으며 이 제한은 이 경우 단일 레코드에만 적용 유효한 값 : 0,... |
message.format.version |
3.0-IV1 | 사용되지 않음 |
message.timestamp.after.max.ms |
9223372036854775807 | 이 구성은 메시지 타임스탬프와 브로커의 타임스탬프 간에 허용되는 타임스탬프 차이를 설정함 이 구성은 메시지 타임스탬프와 브로커의 타임스탬프 간에 허용되는 타임스탬프 차이를 설정됨 message.timestamp.type=CreateTime인 경우 타임스탬프의 차이가 이 지정된 임계값을 초과하면 메시지가 거부됨 message.timestamp.type=LogAppendTime인 경우 이 설정은 무시됨 유효한 값 : 0,... |
message.timestamp.before.max.ms |
9223372036854775807 | 이 설정은 브로커의 타임스탬프와 메시지 타임스탬프 간에 허용되는 타임스탬프 차이를 설정함 메시지 타임스탬프는 브로커의 타임스탬프보다 빠르거나 같을 수 있으며, 허용되는 최대 차이는 이 구성에 설정된 값에 따라 결정됨 message.timestamp.type=CreateTime인 경우 타임스탬프의 차이가 이 지정된 임계값을 초과하면 메시지가 거부됨 message.timestamp.type=LogAppendTime인 경우 이 구성은 무시됨 유효한 값 : message.timestamp.type=CreateTime인 경우 타임스탬프의 차이가 이 지정된 임계값을 초과하면 메시지가 거부 |
message.timestamp.difference.max.ms |
9223372036854775807 | 사용되지 않음 |
message.timestamp.type |
CreateTime | 메시지의 타임스탬프가 메시지 작성 시간인지 또는 로그 추가 시간인지를 정의함 값은 'CreateTime' 또는 'LogAppendTime'이어야 함 유효한 값 : CreateTime, LogAppendTime |
min.cleanable.dirty.ratio |
0.5 | 이 구성은 로그 콤팩터가 로그 정리를 시도하는 빈도를 제어함 본적으로 로그의 50% 이상이 압축된 로그는 정리하지 않음 이 비율은 중복으로 인해 로그에서 낭비되는 최대 공간을 제한함 (50%에서 로그의 최대 50%가 중복될 수 있음) 비율이 높을수록 청소가 더 적고 효율적이지만 통나무에서 더 많은 공간이 낭비된다는 것을 의미함 max.compaction.lag.ms 또는 min.compaction.lag.ms 구성도 지정된 경우, 로그 콤팩터는 (i) 더티 비율 임계값이 충족되고 로그에 최소한 min.compaction.lag.ms 지속 기간 동안 더티(압축되지 않은) 레코드가 있거나 (ii) 로그에 최대 max.compaction.lag.ms 기간 동안 더티(압축되지 않은) 레코드가 있는 경우 로그가 압축 가능한 것으로 간주함 유효한 값 : 0,...,1 |
min.compaction.lag.ms |
0 | 메시지가 로그에서 압축되지 않은 상태로 유지되는 최소 시간 압축 중인 로그에만 적용 유효한 값 : 0,... |
min.insync.replicas |
1 | producer가 acks를 "all"(또는 "-1")로 설정하는 경우, 이 옵션은 쓰기가 성공한 것으로 간주되기 위해 쓰기를 승인해야 하는 최소 복제본 수를 지정함 이 최솟값을 충족할 수 없는 경우 생산자는 예외(NotEnoughReplicas 또는 NotEnoughReplicasAfterAppend)를 발생시킴 함께 사용하면 더 큰 내구성 보장을 시행할 수 있음 일반적인 시나리오는 복제 계수가 3이고 2로 설정된 토픽을 만들고 "all"을 사용하여 생성하는 것 유효한 값 : 1,... |
preallocate |
false | 새 로그 세그먼트를 만들 때 디스크에 파일을 미리 할당해야 하는 경우 True |
remote.storage.enable |
false | 주제에 대해 계층화된 스토리지를 사용하도록 설정하려면 이 구성을 true로 설정해야 함 이 구성을 활성화한 후에는 비활성화할 수 없음. 향후버전에서 제공될 예정(3.6 초과 버전) |
retention.bytes |
-1 | 이 구성은 "삭제" 보존 정책을 사용하는 경우 공간을 확보하기 위해 이전 로그 세그먼트를 삭제하기 전에 파티션(로그 세그먼트로 구성됨)이 증가할 수 있는 최대 크기를 제어함 기본적으로 크기 제한은 없으며 시간 제한만 있음 이 제한은 파티션 수준에서 적용되므로 여기에 파티션 수를 곱하여 주제 보존을 바이트 단위로 계산함 |
retention.ms |
604800000 (7 days) | 이 구성은 "삭제" 보존 정책을 사용하는 경우 공간을 확보하기 위해 이전 로그 세그먼트를 삭제하기 전에 로그를 보존할 최대 시간을 제어함 이는 소비자가 데이터를 읽어야 하는 시간에 대한 SLA를 나타냄 -1로 설정하면 시간 제한이 적용되지 않음 유효한 값 : -1,... |
segment.bytes |
1073741824 (1 gibibyte) | 이 설정은 로그의 세그먼트 파일 크기를 제어함. 보존 및 정리는 항상 한 번에 한 파일씩 수행되므로 세그먼트 크기가 클수록 파일 수는 적지만 보존에 대한 세부적인 제어는 떨어짐 유효한 값 : 14,... |
segment.index.bytes |
10485760 (10 mebibytes) | 이 설정은 오프셋을 파일 위치에 매핑하는 인덱스의 크기를 제어함 이 인덱스 파일을 미리 할당하고 로그가 롤링된 후에만 축소하며, 일반적으로 이 설정을 변경할 필요는 없음 유효한 값 : 4,... |
segment.jitter.ms |
0 | 천둥 같은 세그먼트 롤링 무리를 피하기 위해 예약된 세그먼트 롤 시간에서 최대 임의 지터를 뺀 것을 의미 유효한 값 : 0,... |
segment.ms |
604800000 (7 days) | 세그먼트 파일이 꽉 차지 않은 경우에도 Kafka가 로그를 강제로 롤링하여 보존이 이전 데이터를 삭제하거나 압축할 수 있도록 하는 기간을 제어함 유효한 값 : 1,... |
unclean.leader.election.enable |
false | ISR 집합에 없는 복제본을 최후의 수단으로 리더로 선택할 수 있도록 설정할지 여부를 나타냄 ( 다만 데이터 손실이 일어날 수 있음) |
message.downconversion.enable |
true | 사용 요청을 충족하기 위해 메시지 형식의 다운 변환을 사용할 수 있는지 여부를 제어함 false로 설정된 경우, 브로커는 이전 메시지 형식을 예상하는 사용자에 대해 다운 변환을 수행하지 않음 브로커는 이러한 이전 클라이언트의 사용 요청에 대해 오류로 응답함 UNSUPPORTED_VERSION가진 팔로워에 대한 복제에 필요할 수 있는 메시지 형식 변환에는 적용되지 않음 |
'kafka 설치 및 구성 > 참고) configuration' 카테고리의 다른 글
1-1) 로그 컴팩션 관련 옵션 (0) | 2024.06.25 |
---|---|
6) zookeeper config (zookeeper.properties) (0) | 2024.06.25 |
4) producer configs(producer.properties) (0) | 2024.06.25 |
3) consumer configs(consumer.properties) (0) | 2024.06.25 |
2) connect (connect-distributed.properties) (0) | 2024.06.25 |