4장. 생산자 구성 속성
key.serializer유형: class
중요도: high
org.apache.kafka.common.serialization.Serializer인터페이스를 구현하는 키에 대한 직렬화r 클래스입니다.value.serializer유형: class
중요도: high
org.apache.kafka.common.serialization.Serializer인터페이스를 구현하는 값에 대한 직렬화r 클래스입니다.bootstrap.serverstype: list
Default: ""
Valid Values: non-null string
Importance: high
Kafka 클러스터에 대한 초기 연결을 설정하는 데 사용할 호스트/포트 쌍 목록입니다. 클라이언트는 부트 스트랩을 위해 여기에 지정된 서버에 관계없이 모든 서버를 사용합니다. 이 목록은 전체 서버 세트를 검색하는 데 사용된 초기 호스트에만 영향을 미칩니다. 이 목록은
host1:port1,host2:port2,…형식이어야 합니다. 이러한 서버는 초기 연결이 전체 클러스터 멤버십을 검색하는 데만 사용되므로(이는 동적으로 변경될 수 있음) 전체 서버 세트를 포함할 필요는 없습니다(서버가 다운된 경우).buffer.memorytype: long
Default: 33554432
Valid Values: [0,…]
가져오기: high
생산자가 서버로 전송되는 대기 중인 레코드를 버퍼링하는 데 사용할 수 있는 총 메모리 바이트입니다. 레코드가 서버에 전달할 수 있는 속도보다 빠르게 전송되는 경우 프로듀서가
max.block.ms를 위해 차단된 후 예외가 발생합니다.이 설정은 생산자가 사용할 총 메모리와 대략적으로 일치해야 하지만, 생산자가 사용하는 모든 메모리가 버퍼링에 사용되는 것은 아니므로 하드 바인딩되지는 않습니다. 일부 추가 메모리는 압축( 압축이 활성화된 경우)과 진행 중인 요청을 유지 관리하는 데 사용됩니다.
compression.typetype: string
Default: none
Valid Values: [none, gzip, snappy, lz4, zstd]
가져오기: high
프로듀서에서 생성한 모든 데이터의 압축 유형입니다. 기본값은 none입니다(예: 압축 없음). 유효한 값은
none,gzip,snappy,lz4,zstd입니다. 압축은 데이터의 전체 일괄 처리이므로 일괄 처리 속도는 압축 비율에도 영향을 미칩니다(더 많은 일괄 처리는 더 나은 압축을 의미합니다).retriestype: int
기본값: 2147483647
유효한 값: [0,…,2147483647]
가져오기: high
값을 0보다 크게 설정하면 클라이언트가 전송이 잠재적으로 일시적인 오류와 함께 실패하는 모든 레코드를 다시 보냅니다. 이 재시도는 클라이언트가 오류를 수신할 때 레코드를 재지정하는 경우와 다르지 않습니다. 승인에 성공하기 전에
delivery.timeout.ms로 구성한 타임아웃이 먼저 만료되면 재시도 횟수가 만료되기 전에 생성 요청이 실패합니다. 일반적으로 사용자는 이 구성을 설정되지 않은 상태로 두고delivery.timeout.ms를 사용하여 재시도 동작을 제어해야 합니다.idempotence를 활성화하려면 이 구성 값이 0보다 커야 합니다. 구성이 설정되고 idempotence가 명시적으로 활성화되어 있지 않으면 idempotence가 비활성화됩니다.
enable.idempotence를false로 설정하고max.in.flight.requests.per.connection을 1로 설정하면 두 개의 배치가 단일 파티션으로 전송되고 첫 번째 배치가 실패하고 두 번째 배치의 레코드가 먼저 표시될 수 있으므로 레코드 순서가 변경될 수 있습니다.ssl.key.password유형: password
기본값: null
가져오기: 높음
키 저장소 파일의 개인 키 또는 'ssl.keystore.key'에 지정된 PEM 키의 암호입니다.
ssl.keystore.certificate.chain유형: password
기본값: null
가져오기: 높음
'ssl.keystore.type'로 지정된 형식의 인증서 체인입니다. 기본 SSL 엔진 팩토리에서는 X.509 인증서 목록이 있는 PEM 형식만 지원합니다.
ssl.keystore.key유형: password
기본값: null
가져오기: 높음
'ssl.keystore.type'로 지정된 형식의 개인 키입니다. 기본 SSL 엔진 팩토리에서는 PKCS#8 키를 사용하여 PEM 형식만 지원합니다. 키가 암호화된 경우 'ssl.key.password'를 사용하여 키 암호를 지정해야 합니다.
ssl.keystore.location유형: string
기본값: null
가져오기: 높음
키 저장소 파일의 위치입니다. 이는 클라이언트의 경우 선택 사항이며 클라이언트의 양방향 인증에 사용할 수 있습니다.
ssl.keystore.password유형: password
기본값: null
가져오기: 높음
키 저장소 파일의 저장소 암호입니다. 이는 클라이언트의 경우 선택 사항이며 'ssl.keystore.location'이 구성된 경우에만 필요합니다. 키 저장소 암호는 PEM 형식으로 지원되지 않습니다.
ssl.truststore.certificates유형: password
기본값: null
가져오기: 높음
'ssl.truststore.type'로 지정된 형식의 신뢰할 수 있는 인증서입니다. 기본 SSL 엔진 팩토리에서는 X.509 인증서가 있는 PEM 형식만 지원합니다.
ssl.truststore.location유형: string
기본값: null
가져오기: 높음
신뢰 저장소 파일의 위치입니다.
ssl.truststore.password유형: password
기본값: null
가져오기: 높음
신뢰 저장소 파일의 암호입니다. 암호를 설정하지 않으면 구성된 신뢰 저장소 파일이 계속 사용되지만 무결성 검사는 비활성화됩니다. PEM 형식으로는 신뢰 저장소 암호가 지원되지 않습니다.
batch.sizetype: int
Default: 16384
Valid Values: [0,…]
가져오기: medium
생산자는 여러 레코드가 동일한 파티션에 전송될 때마다 레코드를 더 적은 수의 요청으로 함께 배치하려고 합니다. 이렇게 하면 클라이언트와 서버 모두에서 성능이 향상됩니다. 이 구성은 기본 배치 크기(바이트)를 제어합니다.
이 크기보다 큰 배치 레코드는 수행되지 않습니다.
브로커로 전송된 요청에는 보낼 수 있는 데이터가 있는 각 파티션에 대해 하나씩 여러 개의 일괄 처리가 포함됩니다.
작은 배치 크기로 일괄 처리를 덜 일반화하고 처리량을 줄일 수 있습니다(0의 일괄 처리 크기는 완전히 비활성화됨). 배치 크기가 매우 큰 경우 추가 레코드를 예상할 때 항상 지정된 일괄 처리 크기의 버퍼를 할당하므로 메모리를 약간 더 불편하게 사용할 수 있습니다.
참고: 이 설정은 전송할 배치 크기의 상한을 제공합니다. 이 파티션에 누적된 이 바이트 수보다 적은 경우
linger.ms의 경우 더 많은 레코드가 표시되기를 기다리는 데 "링er"입니다. 이linger.ms설정 기본값은 0입니다. 즉, 누적된 배치 크기도 이batch.size설정 아래에 있는 경우에도 레코드를 즉시 전송합니다.client.dns.lookuptype : string
Default: use_all_dns_ips
Valid Values: [use_all_dns_ips, resolve_canonical_bootstrap_servers_only]
가져오기: 중간
클라이언트에서 DNS 조회를 사용하는 방법을 제어합니다.
use_all_dns_ips로 설정된 경우 성공적으로 연결이 설정될 때까지 반환된 각 IP 주소에 순서대로 연결합니다. 연결 해제 후 다음 IP가 사용됩니다. 모든 IP가 한 번 사용되면 클라이언트는 호스트 이름에서 IP를 다시 확인합니다(JVM 및 OS 캐시 DNS 이름 조회 모두).resolve_canonical_bootstrap_servers_only로 설정된 경우 각 부트스트랩 주소를 정식 이름 목록으로 확인합니다. 부트스트랩 단계 후use_all_dns_ips와 동일하게 작동합니다.client.idtype: string
Default: ""
가져오기: 중간
요청 시 서버로 전달할 id 문자열입니다. 이 목적은 서버 측 요청 로깅에 논리적 애플리케이션 이름을 포함할 수 있도록 허용하여 ip/port를 초과하는 요청 소스를 추적할 수 있습니다.
connections.max.idle.ms유형: long
기본값: 540000 (9분)
가져오기: 중간
이 구성에서 지정한 시간(밀리초) 후 유휴 연결을 종료합니다.
delivery.timeout.mstype: int
기본값: 120000 (2분)
Valid Values: [0,…]
가져오기: 중간
send()호출을 반환한 후 성공 또는 실패를 보고하는 시간에 상한입니다. 이렇게 하면 레코드가 전송 전에 지연되는 총 시간, 브로커의 승인 대기 시간(필요한 경우) 및 재시도 가능한 전송 실패에 허용되는 시간이 제한됩니다. 생산자는 복구할 수 없는 오류가 발생하거나 재시도가 고갈되었거나, 이전 제공 만료 기한에 도달한 배치에 추가된 경우 이 구성보다 먼저 레코드를 전송하지 못하도록 보고할 수 있습니다. 이 구성의 값은request.timeout.ms및linger.ms의 합계보다 크거나 같아야 합니다.linger.mstype: long
Default: 0
Valid Values: [0,…]
가져오기: medium
생산자는 단일 배치된 요청으로의 요청 전송 사이에 들어오는 모든 레코드를 그룹화합니다. 일반적으로 이는 전송 가능한 것보다 레코드가 더 빨리 도달할 때 로드 중에만 발생합니다. 그러나 경우에 따라 클라이언트는 중간 수준의 부하에서도 요청 수를 줄일 수 있습니다. 이 설정은 레코드를 즉시 보내는 대신 소량의 인공 지연을 추가하여 이를 수행하며, 생산자는 다른 레코드를 보내서 전송이 함께 배치될 수 있도록 지정된 지연까지 기다립니다. 이는 TCP의 Nagle 알고리즘과 유사합니다. 이 설정은 일괄 처리 지연에 대한 상한을 제공합니다. 이 설정에 관계없이 파티션의
batch.size가치가 있는 경우 즉시 전송되지만 이 파티션에 누적된 바이트 수보다 적으면 더 많은 레코드가 표시되도록 지정된 시간에 대해 '어링er'합니다. 이 설정 기본값은 0입니다(예: no delay). 예를 들어linger.ms=5를 설정하면 전송된 요청 수를 줄이는 효과가 있지만 로드 없이 전송된 레코드에 최대 5ms의 대기 시간을 더할 수 있습니다.max.block.mstype: long
Default: 60000 (1 minute)
Valid Values: [0,…]
가져오기: 중간
구성은
KafkaProducer의 'send() ,,partitionsFor()initTransactions(),sendOffsetsToTransaction(),및commitTransaction()abortTransaction()메서드가 차단하는 기간을 제어합니다.send()이 시간 초과는 메타데이터 가져오기 및 버퍼 할당 모두를 기다리는 총 시간을 바인딩합니다(사용자 제공 serializers 또는 partitioner 차단은 이 시간 초과에 대해 계산되지 않음).partitionsFor()의 경우 이 시간 초과는 메타데이터를 사용할 수 없는 경우 대기하는 시간을 바인딩합니다. 트랜잭션 관련 방법은 항상 차단되지만 트랜잭션 조정자를 검색할 수 없거나 제한 시간 내에 응답하지 않은 경우 시간 초과가 발생할 수 있습니다.max.request.sizetype: int
Default: 1048576
Valid Values: [0,…]
가져오기: 중간
요청의 최대 크기(바이트)입니다. 이 설정은 생산자가 대규모 요청을 보내지 않도록 단일 요청으로 전송할 레코드 배치 수를 제한합니다. 이는 또한 압축되지 않은 최대 레코드 배치 크기에 대한 제한이기도 합니다. 서버에는 레코드 배치 크기(pression if compression is enabled)에 대한 자체 제한이 있으며 이는 이에 따라 다를 수 있습니다.
partitioner.class유형: class
기본값: null
가져오기: 중간
레코드를 생성할 때 보낼 파티션을 결정하는 데 사용할 클래스입니다. 사용 가능한 옵션은 다음과 같습니다.
- 설정하지 않으면 기본 파티션 논리가 사용됩니다. 이 전략은 batch.size 바이트가 파티션에 생성될 때까지 파티션에 고정하려고 합니다. 이 전략은 다음과 같이 작동합니다.
- 파티션이 지정되지 않았지만 키가 있는 경우 키의 해시를 기반으로 파티션을 선택합니다.
- 파티션이나 키가 없는 경우 파티션에 batch.size 바이트가 생성될 때 변경되는 고정 파티션을 선택합니다.
org.apache.kafka.clients.producer.RoundRobin>-<er.RoundRobin>-<er: 파티션이 없어서 다시 시작할 때까지 일련의 연속 레코드의 각 레코드가 다른 파티션으로 전송됩니다. 참고: 새 배치가 생성될 때 균등하게 분배되는 알려진 문제가 있습니다. 자세한 내용은 KAFKA-9965를 확인하십시오.org.apache.kafka.clients.producer.anchorer인터페이스를 구현하면 사용자 지정 파티션을 연결할 수 있습니다.
partitioner.ignore.keystype: boolean
Default: false
가져오기: 중간
'true'로 설정하면 생산자는 레코드 키를 사용하여 파티션을 선택하지 않습니다. 'false'인 경우 생산자는 키가 있을 때 키의 해시를 기반으로 파티션을 선택합니다. 참고: 사용자 정의 파티션을 사용하는 경우 이 설정은 적용되지 않습니다.
receive.buffer.bytestype: int
기본값: 32768(32 kibibytes)
유효 값: [-1,…]
가져오기: medium
데이터를 읽을 때 사용할 TCP 수신 버퍼(SO_RCVBUF)의 크기입니다. 값이 -1이면 OS 기본값이 사용됩니다.
request.timeout.mstype: int
Default: 30000 (30 seconds)
Valid Values: [0,…]
가져오기: 중간
구성은 클라이언트가 요청 응답을 기다리는 최대 시간을 제어합니다. 시간 초과가 경과하기 전에 응답이 수신되지 않으면 필요한 경우 클라이언트가 요청을 다시 전송하거나 재시도가 고갈되면 요청이 실패합니다. 불필요한 생산자 재시도로 인해 메시지 복제 가능성을 줄이기 위해
replica.lag.time.max.ms(중개 구성)보다 커야 합니다.sasl.client.callback.handler.class유형: class
기본값: null
가져오기: 중간
AuthenticateECDHEbackHandler 인터페이스를 구현하는 SASL 클라이언트 콜백 처리기 클래스의 정규화된 이름입니다.
sasl.jaas.config유형: password
기본값: null
가져오기: 중간
10.0.0.1 구성 파일에서 사용하는 형식의 SASL 연결에 대한 login 컨텍스트 매개변수입니다. 구성 파일 형식은 여기에 설명되어 있습니다. 값 형식은
loginModuleClass 제어Forwarded(optionName=optionValue)*;입니다. 브로커의 경우 구성 앞에 리스너 접두사 및 SASL 메커니즘 이름을 소문자로 붙여야 합니다. 예를 들어 listener.name.sasl_ssl.scram-sha-256.sasl.config=com.example.ScramLoginModule이 필요합니다.sasl.kerberos.service.name유형: string
기본값: null
가져오기: 중간
Kafka가 실행되는 Kerberos 사용자 이름입니다. Kafka의 10.0.0.1 구성 또는 Kafka 구성에서 정의할 수 있습니다.
sasl.login.callback.handler.class유형: class
기본값: null
가져오기: 중간
AuthenticateECDHEbackHandler 인터페이스를 구현하는 SASL 로그인 콜백 처리기 클래스의 정규화된 이름입니다. 브로커의 경우 로그인 콜백 처리기 구성 앞에 리스너 접두사 및 SASL 메커니즘 이름을 붙여야 합니다. 예를 들어 listener.name.sasl_ssl.scram-sha-256.sasl.login.callback.handler.class=com.example.CustomScramLogin>-<backHandler입니다.
sasl.login.class유형: class
기본값: null
가져오기: 중간
로그인 인터페이스를 구현하는 클래스의 정규화된 이름입니다. 브로커의 경우 로그인 구성 앞에 리스너 접두사 및 SASL 메커니즘 이름을 붙여야 합니다. For example, listener.name.sasl_ssl.scram-sha-256.sasl.login.class=com.example.CustomScramLogin.
sasl.mechanismtype: string
Default: GSSAPI
가져오기: 중간
클라이언트 연결에 사용되는 SASL 메커니즘. 이는 보안 공급자를 사용할 수 있는 모든 메커니즘일 수 있습니다. GSSAPI는 기본 메커니즘입니다.
sasl.oauthbearer.jwks.endpoint.url유형: string
기본값: null
가져오기: 중간
공급자의 JWKS(JSON Web Key Set) 를 검색할 수 있는 OAuth/OIDC 공급자 URL입니다. URL은 HTTP(S) 기반 또는 파일 기반일 수 있습니다. URL이 HTTP(S) 기반인 경우 브로커 시작 시 구성된 URL을 통해 OAuth/OIDC 제공업체에서 JWKS 데이터를 검색합니다. 이후의 모든 키는 들어오는 요청에 대해 브로커에 캐시됩니다. 아직 캐시에 없는 "kid" 헤더 클레임 값을 포함하는 JWT에 대한 인증 요청이 수신되면 요청 시 JWKS 끝점을 다시 쿼리합니다. 그러나 브로커는 URL 모든 sasl.oauthbearer.jwks.endpoint.refresh.ms 밀리초를 폴링하여 이를 포함하는 JWT 요청을 수신하기 전에 향후 키로 캐시를 새로 고칩니다. URL이 파일 기반인 경우 브로커는 시작 시 구성된 위치에서 JWKS 파일을 로드합니다. JWT에 JWKS 파일에 없는 "kid" 헤더 값이 포함된 경우 브로커는 JWT를 거부하고 인증이 실패합니다.
sasl.oauthbearer.token.endpoint.url유형: string
기본값: null
가져오기: 중간
OAuth/OIDC ID 공급자의 URL입니다. URL이 HTTP(S) 기반인 경우 해당 발행자는 sasl.jaas.config의 구성에 따라 로그인 요청을 수행할 요청의 토큰 끝점 URL입니다. URL이 파일 기반인 경우 권한 부여에 사용할 OAuth/OIDC ID 공급자가 발행한 액세스 토큰( JWT 직렬화 형식)이 포함된 파일을 지정합니다.
security.protocoltype: string
Default: PLAINTEXT
Valid Values: [PLAINTEXT, SSL, SASL_PLAINTEXT, SASL_SSL]
가져오기: 중간
브로커와 통신하는 데 사용되는 프로토콜입니다. 유효한 값은 PLAINTEXT, SSL, SASL_PLAINTEXT, SASL_SSL입니다.
send.buffer.bytestype: int
기본값: 131072(128 키비바이트)
유효 값: [-1,…]
가져오기: medium
데이터를 전송할 때 사용할 TCP 전송 버퍼(SO_SNDBUF)의 크기입니다. 값이 -1이면 OS 기본값이 사용됩니다.
socket.connection.setup.timeout.max.ms유형: long
기본값: 30000 (30초)
가져오기: 중간
클라이언트가 소켓 연결이 설정될 때까지 대기하는 최대 시간입니다. 연결 설정 시간 초과는 최대의 연속 연결 실패에 대해 기하급수적으로 증가합니다. 연결 태우를 피하기 위해 0.2의 무작위 요소가 계산된 값 위의 20 %에서 20 % 사이의 무작위 범위를 초래합니다.
socket.connection.setup.timeout.ms유형: long
기본값: 10000(10초)
가져오기: 중간
클라이언트가 소켓 연결이 설정될 때까지 대기하는 시간입니다. 시간 초과가 종료되기 전에 연결이 빌드되지 않으면 클라이언트는 소켓 채널을 종료합니다.
ssl.enabled.protocolstype: list
Default: TLSv1.2,TLSv1.3
가져오기: 중간
SSL 연결에 활성화된 프로토콜 목록입니다. Java 11 이상에서 실행되는 경우 기본값은 'TLSv1.2,TLSv1.3'입니다. 그렇지 않으면 'TLSv1.2'입니다. Java 11의 기본값을 사용하면 클라이언트 및 서버 모두 TLSv1.2로 지원하고 대체(TLSv1.2 이상 지원한다고 가정) TLSv1.3을 선호합니다. 이 기본값은 대부분의 경우에 적합합니다.
ssl.protocol에 대한 구성 설명서도 참조하십시오.ssl.keystore.type유형: string
기본: JKS
가져오기: 중간
키 저장소 파일의 파일 형식입니다. 이는 클라이언트의 경우 선택 사항입니다. 기본
ssl.engine.factory.class에서 현재 지원되는 값은 [JKS, PKCS12, PEM]입니다.ssl.protocoltype: string
Default: TLSv1.3
가져오기: 중간
SSLContext를 생성하는 데 사용되는 SSL 프로토콜입니다. Java 11 이상, 'TLSv1.2'로 실행할 때 기본값은 'TLSv1.3'입니다. 이 값은 대부분의 사용 사례에 적합합니다. 최근 JVM에서 허용되는 값은 'TLSv1.2' 및 'TLSv1.3'입니다. 'TLS', 'TLSv1.1', 'SSL', 'SSLv2' 및 'SSLv3'는 이전 JVM에서 지원될 수 있지만 알려진 보안 취약점으로 인해 사용이 권장되지 않습니다. 이 구성 및 'ssl.enabled.protocols'의 기본값을 사용하면 서버가 'TLSv1.3'을 지원하지 않는 경우 클라이언트는 'TLSv1.2'로 다운그레이드됩니다. 이 구성이 'TLSv1.2'로 설정된 경우 클라이언트는 ssl.enabled.protocols의 값 중 하나이고 서버는 'TLSv1.3'만 지원하더라도 'TLSv1.3'을 사용하지 않습니다.
ssl.provider유형: string
기본값: null
가져오기: 중간
SSL 연결에 사용되는 보안 공급자의 이름입니다. 기본값은 JVM의 기본 보안 공급자입니다.
ssl.truststore.type유형: string
기본: JKS
가져오기: 중간
신뢰 저장소 파일의 파일 형식입니다. 기본
ssl.engine.factory.class에서 현재 지원되는 값은 [JKS, PKCS12, PEM]입니다.ackstype: string
기본값: 모든
유효 값: [all, -1, 0, 1]
가져오기: 낮은
생산자가 승인한 승인의 수에 따라 요청이 완료된 것을 고려하기 전에 리더를 수령해야 합니다. 이렇게 하면 전송되는 레코드의 중요도가 제어됩니다. 다음 설정이 허용됩니다.
-
ACKS=0으로 설정하면 생산자가 서버의 승인을 전혀 기다릴 수 없습니다. 레코드는 소켓 버퍼에 즉시 추가되고 전송된 것으로 간주합니다. 이 경우 서버가 레코드를 수신했음을 보장할 수 없으며재시도구성은 적용되지 않습니다(클라이언트는 일반적으로 오류를 알 수 없기 때문에). 각 레코드에 대해 지정된 오프셋은 항상-1로 설정됩니다. -
ACKS=1이것은 리더가 로컬 로그에 레코드를 작성하지만 모든 경배의 완전한 승인을 기다리지 않고 응답한다는 것을 의미합니다. 이 경우 리더는 기록을 확인한 직후 실패하지만, 팔로워가 복제되기 전에 레코드가 손실됩니다. ACKS=all즉, 리더는 전체 동기화 복제본 세트에서 레코드를 승인할 때까지 기다립니다. 이렇게 하면 하나 이상의 동기화 복제본이 활성 상태로 유지되는 한 레코드가 손실되지 않습니다. 이는 사용 가능한 보증입니다. acks=-1 설정과 동일합니다.idempotence를 활성화하려면 이 구성 값이 'all'이어야 합니다. 구성이 설정되고 idempotence가 명시적으로 활성화되어 있지 않으면 idempotence가 비활성화됩니다.
-
enable.idempotencetype: boolean
Default: true
가져오기: low
'true'로 설정하면 생산자가 각 메시지의 사본을 스트림에 정확히 1개씩 작성합니다. 'false'인 경우 브로커 실패 등으로 인한 생산자는 스트림에 재시도된 메시지의 중복을 작성할 수 있습니다. idempotence를 활성화하려면
max.in.flight.requests.per.connection이 5보다 작거나 같아야 합니다(허용 가능한 값에 대해 메시지 순서가 보존됨),재시도 횟수가 0보다 크고acks는 'all'이어야 합니다.충돌하는 구성이 설정되지 않은 경우 기본적으로 idempotence가 활성화됩니다. 구성이 설정되고 idempotence가 명시적으로 활성화되어 있지 않으면 idempotence가 비활성화됩니다. idempotence가 명시적으로 활성화되고 충돌하는 구성이 설정되면
ConfigException이 발생합니다.interceptor.classestype: list
Default: ""
Valid Values: non-null string
가져오기: low
인터셉터로 사용할 클래스 목록입니다.
org.apache.kafka.clients.producer.ProducerInterceptor인터페이스를 구현하면 Kafka 클러스터에 게시하기 전에 프로듀서에서 수신한 레코드를 인터셉트(및 변경)할 수 있습니다. 기본적으로 인터셉터가 없습니다.max.in.flight.requests.per.connectiontype: int
Default: 5
Valid Values: [1,…]
가져오기: 낮음
인증되지 않은 최대 요청 수에 따라 클라이언트가 차단하기 전에 단일 연결을 통해 전송할 수 있습니다. 이 구성이 1보다 크고
enable.idempotence가 false로 설정된 경우 재시도로 인해 전송 실패 후(즉, 재시도가 활성화된 경우) 메시지 재순환 위험이 있습니다. 재시도가 비활성화되어 있거나enable.idempotence가 true로 설정된 경우 순서가 유지됩니다. 또한 idempotence를 활성화하려면 이 구성의 값이 5보다 작거나 같아야 합니다. 구성이 설정되고 idempotence가 명시적으로 활성화되어 있지 않으면 idempotence가 비활성화됩니다.metadata.max.age.mstype: long
Default: 300000 (5 minutes)
Valid Values: [0,…]
가져오기: low
이 기간(밀리초) 후 새 브로커 또는 파티션을 사전에 검색하기 위해 파티션 리더십 변경을 보지 못하더라도 메타데이터를 강제로 새로 고침합니다.
metadata.max.idle.mstype: long
Default: 300000 (5 minutes)
Valid Values: [5000,…]
가져오기: 낮음
생산자가 유휴 상태의 항목에 대한 메타데이터를 캐시하는 기간을 제어합니다. 주제가 메타데이터 유휴 기간을 초과하면 경과된 시간이 메타데이터 유휴 기간을 초과하면 주제의 메타데이터가 잊혀지고 이에 대한 다음 액세스로 인해 메타데이터 가져오기 요청이 강제 적용됩니다.
metric.reporterstype: list
Default: ""
Valid Values: non-null string
가져오기: low
메트릭 보고자로 사용할 클래스 목록입니다.
org.apache.kafka.common.metrics.MetricsReporter인터페이스를 구현하면 새 지표 생성에 대한 알림을 받을 클래스를 연결할 수 있습니다. JmxReporter는 항상 통계를 등록하기 위해 포함됩니다.metrics.num.samplestype: int
Default: 2
Valid Values: [1,…]
가져오기: 낮음
메트릭으로 유지 관리되는 샘플 수입니다.
metrics.recording.leveltype: string
Default: INFO
Valid Values: [INFO, DEBUG, TRACE]
가져오기: low
메트릭에 대해 가장 높은 기록 수준입니다.
metrics.sample.window.mstype: long
Default: 30000 (30 seconds)
Valid Values: [0,…]
가져오기: low
지표 샘플이 계산되는 시간 창입니다.
partitioner.adaptive.partitioning.enabletype: boolean
Default: true
가져오기: low
'true'로 설정하면 생산자가 브로커 성능에 맞게 조정하고 더 빠른 브로커에서 호스팅되는 파티션에 더 많은 메시지를 생성합니다. 'false'인 경우 생산자는 메시지를 균일하게 배포하려고 합니다. 참고: 사용자 정의 파티션을 사용하는 경우 이 설정은 적용되지 않습니다.
partitioner.availability.timeout.mstype: long
Default: 0
Valid Values: [0,…]
가져오기: low
브로커가
partitioner.availability.timeout.ms시간에 대한 파티션에서 요청을 생성할 수 없는 경우, 파티션자는 해당 파티션을 사용할 수 없는 것으로 처리합니다. 값이 0이면 이 논리는 비활성화됩니다. 참고: 사용자 정의 partitioner가 사용되거나 'partitioner.adaptive.partitioning.enable<code/>가 'false'로 설정된 경우 이 설정은 적용되지 않습니다.reconnect.backoff.max.mstype: long
Default: 1000 (1 second)
Valid Values: [0,…]
가져오기: low
브로커에 다시 연결할 때 대기하는 최대 시간(밀리초)입니다. 제공되는 경우 호스트당 백오프는 연속된 연결 실패마다 최대 최대 기하급수적으로 증가합니다. 백오프 증가를 계산한 후 연결 문제가 발생하지 않도록 20 % 임의 지터가 추가됩니다.
reconnect.backoff.mstype: long
Default: 50
Valid Values: [0,…]
가져오기: low
지정된 호스트에 다시 연결하기 전에 대기하는 기본 시간입니다. 이렇게 하면 엄격한 루프에서 호스트에 반복적으로 연결하는 것을 방지할 수 있습니다. 이 백오프는 클라이언트가 브로커에 대한 모든 연결 시도에 적용됩니다.
retry.backoff.mstype: long
Default: 100
Valid Values: [0,…]
가져오기: low
지정된 주제 파티션에 실패한 요청을 재시도하기 전에 대기하는 시간입니다. 이렇게 하면 일부 실패 시나리오에서 엄격한 루프에서 반복적으로 요청을 보내는 것을 방지할 수 있습니다.
sasl.kerberos.kinit.cmdtype: string
Default: /usr/bin/kinit
가져오기: low
Kerberos kinit 명령 경로입니다.
sasl.kerberos.min.time.before.relogin유형: long
기본값: 60000
가져오기: 낮음
새로 고침 시도 사이에 로그인 스레드 절전 시간.
sasl.kerberos.ticket.renew.jitter유형: double
기본값: 0.05
가져오기: 낮음
임의의 지터의 백분율이 갱신 시간에 추가되었습니다.
sasl.kerberos.ticket.renew.window.factor유형: double
기본값: 0.8
가져오기: 낮음
로그인 스레드는 마지막 새로 고침에서 티켓 만료까지 지정된 창 요인에 도달할 때까지 유휴 상태가 됩니다. 이 때 티켓을 갱신하려고 합니다.
sasl.login.connect.timeout.ms유형: int
기본값: null
가져오기: 낮음
외부 인증 공급자 연결 시간 초과의 (선택 사항) 값(밀리초)입니다. 현재 OAUTHBEEER에만 적용됩니다.
sasl.login.read.timeout.ms유형: int
기본값: null
가져오기: 낮음
외부 인증 공급자 읽기 시간(선택 사항)의 (선택 사항) 값(밀리초)입니다. 현재 OAUTHBEEER에만 적용됩니다.
sasl.login.refresh.buffer.secondstype: short
Default: 300
Valid Values: [0,…,3600]
가져오기: 낮은
인증 정보를 새로 고칠 때 자격 증명이 만료되기 전의 버퍼 시간(초)입니다. 새로 고침이 버퍼 초 수보다 만료에 더 가까운 경우 최대한 버퍼 시간을 유지하도록 새로 고침이 이동합니다. 적법한 값은 0에서 3600(1시간) 사이이며, 값을 지정하지 않으면 기본값 300(5분)이 사용됩니다. 이 값 및 sasl.login.refresh.min.period.seconds는 합계가 인증 정보의 나머지 수명을 초과하면 무시됩니다. 현재 OAUTHBEEER에만 적용됩니다.
sasl.login.refresh.min.period.secondstype: short
Default: 60
Valid Values: [0,…,900]
가져오기: 낮은
로그인 새로 고침 스레드가 인증 정보를 새로 고치기 전에 대기하는 최소 시간(초)입니다. 적법한 값은 0에서 900(15분) 사이이며, 값이 지정되지 않은 경우 기본값 60(1분)이 사용됩니다. 이 값과 sasl.login.refresh.buffer.seconds는 합계가 인증 정보의 나머지 수명을 초과하면 무시됩니다. 현재 OAUTHBEEER에만 적용됩니다.
sasl.login.refresh.window.factortype: double
Default: 0.8
Valid Values: [0.5,…,1.0]
가져오기: low
로그인 새로 고침 스레드는 인증 정보의 수명을 기준으로 지정된 창 요소에 도달할 때까지 유휴 상태가 됩니다. 이 시점에서 인증 정보를 새로 고침하려고 합니다. 적법한 값은 0.5(50%)에서 1.0(100%) 사이이며, 값이 지정되지 않은 경우 기본값 0.8(80%)가 사용됩니다. 현재 OAUTHBEEER에만 적용됩니다.
sasl.login.refresh.window.jittertype: double
Default: 0.05
Valid Values: [0.0,…,0.25]
가져오기: 낮음
로그인 새로 고침 스레드의 절전 시간에 추가되는 인증 정보의 수명을 기준으로 최대 임의 지터입니다. 적법한 값은 0에서 0.25 (25%) 사이이며, 값이 지정되지 않은 경우 기본값 0.05(5%)가 사용됩니다. 현재 OAUTHBEEER에만 적용됩니다.
sasl.login.retry.backoff.max.ms유형: long
기본값: 10000(10초)
가져오기: 낮음
로그인이 시도한 후 외부 인증 공급자를 시도하는 최대 대기 시간의 (선택 사항) 값(밀리초)입니다. login은 sasl.login.retry.backoff.ms 설정을 기반으로 초기 대기 시간과 함께 지수 백오프 알고리즘을 사용하며, sasl.login.retry.backoff.max.ms 설정으로 지정된 최대 대기 길이까지 시도 사이에 대기 길이를 두 배로 늘어납니다. 현재 OAUTHBEEER에만 적용됩니다.
sasl.login.retry.backoff.ms유형: long
기본값: 100
가져오기: 낮은
로그인 간 초기 대기 시간(선택 사항)에서 외부 인증 공급자를 시도하는 경우 (선택 사항) 값(밀리초)입니다. login은 sasl.login.retry.backoff.ms 설정을 기반으로 초기 대기 시간과 함께 지수 백오프 알고리즘을 사용하며, sasl.login.retry.backoff.max.ms 설정으로 지정된 최대 대기 길이까지 시도 사이에 대기 길이를 두 배로 늘어납니다. 현재 OAUTHBEEER에만 적용됩니다.
sasl.oauthbearer.clock.skew.seconds유형: int
기본값: 30
가져오기: 낮음
OAuth/OIDC ID 공급자와 브로커 간의 차이점을 허용하는 (선택 사항) 값(선택 사항)입니다.
sasl.oauthbearer.expected.audience유형: list
기본값: null
가져오기: 낮음
브로커가 쉼표로 구분된 설정을 사용하여 예상 대상 중 하나에 대해 JWT가 발행되었는지 확인합니다. JWT는 표준 OAuth "공지" 클레임에 대해 검사되며 이 값이 설정된 경우 브로커는 JWT의 "aud" 클레임의 값과 일치하여 정확한 일치가 있는지 확인합니다. 일치하는 항목이 없는 경우 브로커는 JWT를 거부하고 인증이 실패합니다.
sasl.oauthbearer.expected.issuer유형: string
기본값: null
가져오기: 낮음
브로커가 사용할 (선택 사항) 설정을 사용하여 JWT가 예상 발급자에 의해 생성되었는지 확인합니다. JWT는 표준 OAuth "iss" 클레임에 대해 검사하고 이 값이 설정되면 브로커는 JWT의 "iss" 클레임에 있는 것과 정확히 일치합니다. 일치하는 항목이 없는 경우 브로커는 JWT를 거부하고 인증이 실패합니다.
sasl.oauthbearer.jwks.endpoint.refresh.ms유형: long
Default:36 00000 (1 hour)
가져오기: 낮음
브로커가 JWT의 서명을 확인하는 키가 포함된 JWKS(JSON Web Key Set) 캐시를 새로 고침할 때까지(선택 사항) 값(선택 사항)입니다.
sasl.oauthbearer.jwks.endpoint.retry.backoff.max.ms유형: long
기본값: 10000(10초)
가져오기: 낮음
외부 인증 공급자에서 JWKS(JSON Web Key Set)를 검색하려는 시도 간 최대 대기 시간(밀리초)입니다. JWKS 검색은 sasl.oauthbearer.jwks.endpoint.retry.backoff.ms 설정을 기반으로 초기 대기 알고리즘과 함께 지수 백오프 알고리즘을 사용하며, sasl.oauthbearer.jwks.endpoint.endpoint.retry.backoff.max.ms 설정을 통해 지정한 최대 대기 기간 간 대기 길이를 두 배로 늘립니다.
sasl.oauthbearer.jwks.endpoint.retry.backoff.ms유형: long
기본값: 100
가져오기: 낮은
JWKS(JSON 웹 키 세트) 검색 시 외부 인증 공급자의 초기 대기 시간(선택 사항) 값(선택 사항)입니다. JWKS 검색은 sasl.oauthbearer.jwks.endpoint.retry.backoff.ms 설정을 기반으로 초기 대기 알고리즘과 함께 지수 백오프 알고리즘을 사용하며, sasl.oauthbearer.jwks.endpoint.endpoint.retry.backoff.max.ms 설정을 통해 지정한 최대 대기 기간 간 대기 길이를 두 배로 늘립니다.
sasl.oauthbearer.scope.claim.name유형: string
기본값: 범위
가져오기: 낮음
범위에 대한 OAuth 클레임은 종종 "범위"라고 하지만, OAuth/OIDC 공급자가 해당 클레임에 대해 다른 이름을 사용하는 경우 JWT 페이로드에 포함된 범위에 사용할 다른 이름을 제공할 수 있습니다.
sasl.oauthbearer.sub.claim.nametype: string
Default: sub
가져오기: low
주체에 대한 OAuth 클레임은 종종 "sub"라고 하지만, OAuth/OIDC 공급자가 해당 클레임에 대해 다른 이름을 사용하는 경우 JWT 페이로드에 포함된 항목에 사용할 다른 이름을 제공할 수 있습니다.
security.providers유형: string
기본값: null
가져오기: 낮음
구성 가능한 작성자 클래스 목록은 각각 보안 알고리즘을 구현하는 공급자를 반환합니다. 이러한 클래스는
org.apache.kafka.common.security.auth.SecurityProviderCreator인터페이스를 구현해야 합니다.ssl.cipher.suites유형: list
기본값: null
가져오기: 낮음
암호화 제품군 목록입니다. TLS 또는 SSL 네트워크 프로토콜을 사용하여 네트워크 연결의 보안 설정을 협상하는 데 사용되는 인증, 암호화, MAC 및 키 교환 알고리즘의 이름 지정된 조합입니다. 기본적으로 사용 가능한 모든 암호화 제품군이 지원됩니다.
ssl.endpoint.identification.algorithm유형: string
기본값: https
가져오기: 낮음
서버 인증서를 사용하여 서버 호스트 이름을 검증하는 끝점 식별 알고리즘입니다.
ssl.engine.factory.class유형: class
기본값: null
가져오기: 낮음
SSLEngine 개체를 제공하는 org.apache.kafka.common.security.auth.SslEngineFactory 유형의 클래스입니다. Default value is org.apache.kafka.common.security.ssl.DefaultSslEngineFactory.
ssl.keymanager.algorithm유형: string
Default: SunX509
가져오기: 낮음
SSL 연결에 대해 키 관리자 팩토리에서 사용하는 알고리즘입니다. 기본값은 Java 가상 머신에 대해 구성된 키 관리자 팩토리 알고리즘입니다.
ssl.secure.random.implementation유형: string
기본값: null
가져오기: 낮음
SSL 암호화 작업에 사용할 SecureRandomECDHE 구현입니다.
ssl.trustmanager.algorithm유형: string
Default: PKIX
가져오기: 낮음
신뢰 관리자 팩토리에서 SSL 연결에 사용하는 알고리즘입니다. 기본값은 Java 가상 머신에 대해 구성된 신뢰 관리자 팩토리 알고리즘입니다.
transaction.timeout.ms유형: int
기본값: 60000 (1분)
가져오기: 낮음
이 값이 브로커의 transaction.max.timeout.ms 설정보다 클 경우 요청이 InvalidTxnTimeoutException 오류로 인해 실패합니다.If this value is larger than the transaction.max.timeout.ms setting in the broker, the request will fail with a transaction status update from the producer before proactively aborting the ongoing transaction.If this value is larger than the transaction.max.timeout.ms setting in the broker, the request will fail with a
InvalidTxnTimeoutExceptionerror.transactional.idtype: string
Default: null
Valid Values: non-empty string
Importance: low
트랜잭션 전달에 사용할 TransactionalId입니다. 이를 통해 클라이언트가 새 트랜잭션을 시작하기 전에 동일한 TransactionalId를 사용하는 트랜잭션이 완료되었음을 보장할 수 있기 때문에 여러 생산자 세션에 걸쳐 신뢰성 체계가 가능합니다. TransactionalId가 제공되지 않으면 생산자는 idempotent 제공으로 제한됩니다. TransactionalId가 구성된 경우
enable.idempotence가 임시됩니다. 기본적으로 TransactionId는 구성되지 않으므로 트랜잭션을 사용할 수 없습니다. 기본적으로 트랜잭션에는 프로덕션에 권장되는 3개 이상의 브로커의 클러스터가 필요합니다. 개발을 위해 브로커 설정을 조정하여 이를 변경할 수 있습니다.transaction.state.log.replication.factor.