3장. 소비자 구성 속성
key.deserializer
유형: class
Importance: high
org.apache.kafka.common.serialization.Deserializer
인터페이스를 구현하는 키에 대한 Deserializer 클래스입니다.value.deserializer
유형: class
Importance: high
org.apache.kafka.common.serialization.Deserializer
인터페이스를 구현하는 value의 Deserializer 클래스입니다.bootstrap.servers
type: list
default: ""
유효한 값: non-null string
Importance: high
Kafka 클러스터에 대한 초기 연결을 설정하는 데 사용할 호스트/포트 쌍 목록입니다. 클라이언트는 부트스트랩을 위해 여기에 지정된 서버를 여기에 관계없이 모든 서버를 사용합니다. 이 목록은 전체 서버 세트를 검색하는 데 사용되는 초기 호스트에만 영향을 미칩니다. 이 목록은
host1:port1,host2:port2,…
이어야 합니다. 이러한 서버는 초기 연결에서 전체 클러스터 멤버십을 검색하는 데만 사용되므로(동적으로 변경될 수 있음) 이 목록에는 전체 서버 세트가 포함되지 않아도 됩니다(서버가 다운된 경우 하나 이상 필요).fetch.min.bytes
유형: int
기본값: 1
유효한 값: [0,…]
중요도: high
서버에서 가져오기 요청에 대해 반환해야 하는 최소 데이터 양입니다. 데이터가 충분하지 않은 경우 요청은 요청에 응답하기 전에 많은 데이터가 누적될 때까지 기다립니다. 1바이트의 기본 설정은 데이터의 수를 사용할 수 있는 즉시 가져오기 요청이 응답되거나 데이터가 도착 대기 중인 가져오기 요청 시간이 초과되는 즉시 응답됨을 의미합니다. 이 값을 더 큰 값으로 설정하면 서버가 더 많은 양의 데이터가 누적될 때까지 대기하므로 추가 대기 시간이 지남에 따라 서버 처리량을 약간 개선할 수 있습니다.
group.id
유형: 문자열
기본값: null
Importance: high
이 소비자가 속하는 소비자 그룹을 식별하는 고유한 문자열입니다. 이 속성은 소비자가
subscribe(topic)
또는 Kafka 기반 오프셋 관리 전략을 사용하여 그룹 관리 기능을 사용하는 경우 필요합니다.group.protocol
type: string
default: classic
Valid Values: ( case insensitive) [CONSUMER, CLASSIC]
Importance: high
그룹 프로토콜 소비자가 사용해야 합니다. 현재 "classic" 또는 "consumer"를 지원합니다. "consumer"가 지정되면 소비자 그룹 프로토콜이 사용됩니다. 그렇지 않으면 클래식 그룹 프로토콜이 사용됩니다.
heartbeat.interval.ms
유형: int
기본값: 3000 (3초)
중요도: high
Kafka의 그룹 관리 기능을 사용할 때 하트비트와 소비자 코디네이터 간 예상 시간입니다. 하트비트는 사용자의 세션이 활성 상태를 유지하고 새 소비자가 그룹에 참여하거나 나가면 재조정을 용이하게 하는 데 사용됩니다. 값은
session.timeout.ms
보다 작아야 하지만 일반적으로 해당 값의 1/3 이상을 설정하지 않아야 합니다. 정상적인 리밸런스에 필요한 시간을 제어하도록 더욱 낮게 조정할 수 있습니다.max.partition.fetch.bytes
유형: int
기본값: 1048576 (1bibyte)
유효한 값: [0,…]
Importance: high
서버가 반환할 파티션당 최대 데이터 양입니다. 레코드는 소비자가 배치로 가져옵니다. 가져오기의 첫 번째 비어 있지 않은 파티션의 첫 번째 레코드 배치가 이 제한보다 크면 소비자가 진행할 수 있도록 배치가 반환됩니다. 브로커가 허용하는 최대 레코드 배치 크기는
message.max.bytes
(broker config) 또는max.message.bytes
(topic config)를 통해 정의됩니다. 소비자 요청 크기를 제한하려면 fetch.max.bytes를 참조하십시오.session.timeout.ms
유형: int
기본값: 45000 (45 초)
중요도: high
Kafka의 그룹 관리 기능을 사용할 때 클라이언트 오류를 감지하는 데 사용되는 시간 초과입니다. 클라이언트는 주기적인 하트비트를 전송하여 브로커에 활성을 나타냅니다. 이 세션 시간 제한이 만료되기 전에 브로커가 하트비트를 수신하지 않으면 브로커는 이 클라이언트를 그룹에서 제거하고 재조정을 시작합니다. 값은 브로커 구성에 구성된 대로 허용 범위에 있어야 합니다
.min.session.timeout.ms 및
.ms .group.max.session.timeout
.msssl.key.password
유형: password
기본값: null
Importance: high
키 저장소 파일의 개인 키 또는 'ssl.keystore.key'에 지정된 PEM 키의 암호입니다.
ssl.keystore.certificate.chain
유형: password
기본값: null
Importance: high
'ssl.keystore.type'에 지정된 형식의 인증서 체인입니다. 기본 SSL 엔진 팩토리에서는 X.509 인증서 목록이 있는 PEM 형식만 지원합니다.
ssl.keystore.key
유형: password
기본값: null
Importance: high
'ssl.keystore.type'에 지정된 형식의 개인 키입니다. 기본 SSL 엔진 팩토리에서는 PKCS#8 키가 있는 PEM 형식만 지원합니다. 키가 암호화된 경우 'ssl.key.password'를 사용하여 키 암호를 지정해야 합니다.
ssl.keystore.location
유형: 문자열
기본값: null
Importance: high
키 저장소 파일의 위치입니다. 클라이언트의 경우 선택 사항이며 클라이언트의 양방향 인증에 사용할 수 있습니다.
ssl.keystore.password
유형: password
기본값: null
Importance: high
키 저장소 파일의 저장소 암호입니다. 이는 클라이언트에 선택 사항이며 'ssl.keystore.location'이 구성된 경우에만 필요합니다. PEM 형식에는 키 저장소 암호가 지원되지 않습니다.
ssl.truststore.certificates
유형: password
기본값: null
Importance: high
'ssl.truststore.type'에서 지정한 형식의 신뢰할 수 있는 인증서입니다. 기본 SSL 엔진 팩토리에서는 X.509 인증서가 있는 PEM 형식만 지원합니다.
ssl.truststore.location
유형: 문자열
기본값: null
Importance: high
신뢰 저장소 파일의 위치입니다.
ssl.truststore.password
유형: password
기본값: null
Importance: high
신뢰 저장소 파일의 암호입니다. 암호를 설정하지 않으면 구성된 신뢰 저장소 파일이 계속 사용되지만 무결성 검사가 비활성화됩니다. PEM 형식에 대해 신뢰 저장소 암호가 지원되지 않습니다.
allow.auto.create.topics
유형: 부울
기본값: true
Importance: medium
주제를 구독하거나 할당할 때 브로커에 자동 주제 생성을 허용합니다. 서브스크립션되는 주제는 브로커가
auto.create.topics.enable
브로커 구성을 사용하는 경우에만 자동으로 생성됩니다. 0.11.0 미만의 브로커를 사용하는 경우 이 구성을false
로 설정해야 합니다.auto.offset.reset
유형: 문자열
default: latest
올바른 값: [latest, earliest, none]
중요도: 중간
Kafka에 초기 오프셋이 없거나 현재 오프셋이 서버에 더 이상 존재하지 않는 경우 수행할 작업(예: 해당 데이터가 삭제되었기 때문에).
- 가장 빠른 시간: 오프셋을 가장 초기 오프셋으로 자동 재설정
- latest: 오프셋을 최신 오프셋으로 자동 재설정
- none: 소비자 그룹에 대한 이전 오프셋이 없는 경우 사용자에게 예외를 발생시킵니다.
기타 모든 항목: 사용자에게 예외를 throw합니다.
이 구성을 latest로 설정하는 동안 파티션 번호를 변경하면 생산자가 새로 추가된 파티션(예: 아직 초기 오프셋 없음)으로 메시지를 보내기 시작할 수 있으므로 사용자가 오프셋을 재설정하기 전에 메시지 전달 손실이 발생할 수 있습니다.
client.dns.lookup
type : string
default: use_all_dns_ips
유효한 값: [use_all_dns_ips, resolve_canonical_bootstrap_servers_only]
Importance: medium
클라이언트에서 DNS 조회를 사용하는 방법을 제어합니다.
use_all_dns_ips
로 설정된 경우 성공적인 연결이 설정될 때까지 반환된 각 IP 주소에 순서대로 연결합니다. 연결 해제 후 다음 IP가 사용됩니다. 모든 IP가 한 번 사용되면 클라이언트는 호스트 이름에서 IP를 다시 확인합니다(JVM 및 OS 캐시 DNS 이름 조회 모두).resolve_canonical_bootstrap_servers_only
로 설정된 경우 각 부트스트랩 주소를 정식 이름 목록으로 확인합니다. 부트스트랩 단계 후use_all_dns_ips
와 동일하게 작동합니다.connections.max.idle.ms
유형: long
기본값: 540000 (9 분)
중요도: 중간
이 구성에서 지정한 시간(밀리초) 후에 유휴 연결을 종료합니다.
default.api.timeout.ms
유형: int
기본값: 60000 (1분)
유효한 값: [0,…]
중요: 중간
클라이언트 API의 시간 초과(밀리초)를 지정합니다. 이 구성은
timeout
매개변수를 지정하지 않는 모든 클라이언트 작업의 기본 시간 초과로 사용됩니다.enable.auto.commit
유형: 부울
기본값: true
Importance: medium
true인 경우 소비자 오프셋은 백그라운드에서 정기적으로 커밋됩니다.
exclude.internal.topics
유형: 부울
기본값: true
Importance: medium
서브스크립션 패턴과 일치하는 내부 주제를 서브스크립션에서 제외해야 하는지 여부입니다. 항상 내부 주제를 명시적으로 구독할 수 있습니다.
fetch.max.bytes
유형: int
기본값: 52428800(50 메비바이트)
유효한 값: [0,…]
Importance: medium
서버에서 가져오기 요청에 대해 반환해야 하는 최대 데이터 양입니다. 레코드는 소비자가 배치로 가져오고, 풀의 첫 번째 비어 있지 않은 파티션의 첫 번째 레코드 배치가 이 값보다 크면 소비자를 진행할 수 있도록 레코드 배치가 반환됩니다. 따라서 이는 절대 최대값이 아닙니다. 브로커가 허용하는 최대 레코드 배치 크기는
message.max.bytes
(broker config) 또는max.message.bytes
(topic config)를 통해 정의됩니다. 소비자는 병렬로 여러 가져오기를 수행합니다.group.instance.id
type: string
default: null
Valid Values: non-empty string
Importance: medium
최종 사용자가 제공하는 소비자 인스턴스의 고유 식별자입니다. 비어 있지 않은 문자열만 허용됩니다. 설정된 경우 소비자는 정적 멤버로 처리되므로 언제든지 이 ID가 있는 하나의 인스턴스만 소비자 그룹에서 허용됩니다. 이는 더 큰 세션 시간 초과와 함께 사용되어 일시적인 사용 불가(예: 프로세스 재시작)로 인한 그룹 재조정을 방지할 수 있습니다. 설정되지 않은 경우 소비자는 기존 동작인 동적 멤버로 그룹에 참여합니다.
group.remote.assignor
유형: 문자열
기본값: null
Importance: medium
사용할 서버 측 할당자입니다. 할당자를 지정하지 않으면 그룹 코디네이터가 하나를 선택합니다. 이 구성은
group.protocol
이 "consumer"로 설정된 경우에만 적용됩니다.isolation.level
type: string
Default: read_uncommitted
올바른 값: [read_committed, read_uncommitted]
Importance: medium
트랜잭션으로 작성된 메시지를 읽는 방법을 제어합니다.
read_committed
로 설정하면 consumer.poll()은 커밋된 트랜잭션 메시지만 반환합니다.read_uncommitted
(기본값)로 설정하면 consumer.poll()이 중단된 트랜잭션 메시지인 모든 메시지를 반환합니다. 비-전용 메시지는 두 모드에서 무조건 반환됩니다.메시지는 항상 오프셋 순서대로 반환됩니다. 따라서
read_committed
모드에서 consumer.poll()은 첫 번째 오픈 트랜잭션의 오프셋보다 적은 LSO(마지막 stable offset)까지만 메시지를 반환합니다. 특히 진행중인 트랜잭션에 속하는 메시지가 표시된 모든 메시지는 관련 트랜잭션이 완료될 때까지 유지됩니다. 결과적으로read_committed
소비자는 일선 거래에서 높은 워터마크까지 읽을 수 없습니다.Further, when in `read_committed` the seekToEnd method will return the LSO .
max.poll.interval.ms
유형: int
기본값: 300000 (5 분)
유효한 값: [1,…]
중요도: 중간
소비자 그룹 관리를 사용할 때 poll() 호출 사이의 최대 지연입니다. 이렇게 하면 더 많은 레코드를 가져오기 전에 소비자를 유휴 상태로 설정할 수 있는 시간에 상한이 발생합니다. 이 시간 초과가 만료되기 전에 poll()를 호출하지 않으면 소비자가 실패한 것으로 간주되고 그룹이 파티션을 다른 멤버에 다시 할당하기 위해 재조정됩니다. 이 시간 초과에 도달하는 null이 아닌
group.instance.id
를 사용하는 소비자의 경우 즉시 파티션이 다시 할당되지 않습니다. 대신, 소비자는 하트비트 전송을 중지하고session.timeout.ms
의 만료 후 파티션이 다시 할당됩니다. 이렇게 하면 종료가 있는 정적 소비자의 동작이 미러링됩니다.max.poll.records
유형: int
기본값: 500
올바른 값: [1,…]
중요도: 중간
poll()에 대한 단일 호출에서 반환되는 최대 레코드 수입니다.
max.poll.records
는 기본 가져오기 동작에 영향을 미치지 않습니다. 소비자는 각 가져오기 요청의 레코드를 캐시하고 각 폴링에서 증분 방식으로 반환합니다.partition.assignment.strategy
type : list
Default: apache.kafka.clients.consumer.RangeAssignor,class org.apache.kafka.clients.consumer.consumer.CooperativeStickyAssignor
Valid Values: non-null string
Importance: medium
그룹 관리가 사용될 때 클라이언트가 소비자 인스턴스 간에 파티션 소유권을 배포하는 데 사용할 지원되는 파티션 할당 전략의 기본 설정에 따라 정렬되는 클래스 이름 또는 클래스 유형 목록입니다. 사용 가능한 옵션은 다음과 같습니다.
-
org.apache.kafka.clients.consumer.RangeAssignor
: 주제별로 파티션을 할당합니다. -
org.apache.kafka.clients.consumer.RoundRobinAssignor
: 라운드 로빈 방식으로 파티션을 소비자에게 할당합니다. -
org.apache.kafka.clients.consumer.StickyAssignor
: 가능한 한 많은 기존 파티션 할당을 유지하면서 maximally balanced 할당을 보장합니다. org.apache.kafka.clients.consumer.CooperativeStickyAssignor
: 동일한 CryostatAssignor 논리를 따르지만 cooperative 재조정을 허용합니다.기본 할당자는 [RangeAssignor, CooperativeStickyAssignor]이며 기본적으로 RangeAssignor를 사용하지만 목록에서 RangeAssignor를 제거하는 단일 롤링 바운더로 CooperativeStickyAssignor로 업그레이드할 수 있습니다.
org.apache.kafka.clients.consumer.Consumer CryostatAssignor
인터페이스를 구현하면 사용자 지정 할당 전략을 연결할 수 있습니다.
-
receive.buffer.bytes
유형: int
기본값: 65536 (64 kibibytes)
유효한 값: [-1,…]
Importance: medium
데이터를 읽을 때 사용할 TCP 수신 버퍼(SO_RCVBUF)의 크기입니다. 값이 -1이면 OS 기본값이 사용됩니다.
request.timeout.ms
유형: int
기본값: 30000(30초)
유효한 값: [0,…]
Importance: medium
구성은 클라이언트가 요청 응답을 기다리는 최대 시간을 제어합니다. 시간 초과가 경과하기 전에 응답을 수신하지 않으면 필요한 경우 클라이언트가 요청을 다시 전송하거나 재시도가 소진되면 요청을 다시 보냅니다.
sasl.client.callback.handler.class
유형: class
Default: null
Importance: medium
AuthenticateCallbackHandler 인터페이스를 구현하는 SASL 클라이언트 콜백 처리기 클래스의 정규화된 이름입니다.
sasl.jaas.config
유형: password
기본값: null
Importance: medium
JAAS 구성 파일에서 사용하는 형식의 SASL 연결에 대한 JAAS 로그인 컨텍스트 매개변수입니다. JAAS 구성 파일 형식은 여기에 설명되어 있습니다. 값 형식은
loginModuleClass controlFlag (optionName=optionValue)*;
입니다. 브로커의 경우 구성 앞에 리스너 접두사 및 SASL 메커니즘 이름 앞에 소문자를 붙여야 합니다. 예를 들어 listener.name.sasl_ssl.scram-sha-256.sasl.jaas.config=com.example.ScramLoginModule이 필요합니다.sasl.kerberos.service.name
유형: 문자열
기본값: null
Importance: medium
Kafka가 실행되는 Kerberos 주체 이름입니다. Kafka의 JAAS config 또는 Kafka의 config에서 정의할 수 있습니다.
sasl.login.callback.handler.class
유형: class
Default: null
Importance: medium
AuthenticateCallbackHandler 인터페이스를 구현하는 SASL 로그인 콜백 처리기 클래스의 정규화된 이름입니다. 브로커의 경우 로그인 콜백 처리기 구성 앞에 리스너 접두사 및 SASL 메커니즘 이름 앞에 소문자를 붙여야 합니다. 예를 들어 listener.name.sasl_ssl.scram-sha-256.sasl.login.callback.handler.class=com.example.CustomScramLoginCallbackHandler입니다.
sasl.login.class
유형: class
Default: null
Importance: medium
로그인 인터페이스를 구현하는 클래스의 정규화된 이름입니다. 브로커의 경우 로그인 구성 앞에는 리스너 접두사와 SASL 메커니즘 이름 앞에 소문자를 붙여야 합니다. 예를 들어 listener.name.sasl_ssl.scram-sha-256.sasl.login.class=com.example.CustomScramLogin입니다.
sasl.mechanism
유형: 문자열
기본값: GSSAPI
Importance: medium
클라이언트 연결에 사용되는 SASL 메커니즘입니다. 이는 보안 공급자를 사용할 수 있는 메커니즘일 수 있습니다. GSSAPI는 기본 메커니즘입니다.
sasl.oauthbearer.jwks.endpoint.url
유형: 문자열
기본값: null
Importance: medium
공급자의 JWKS(JSON 웹 키 세트) 를 검색할 수 있는 OAuth/OIDC 공급자 URL입니다. URL은 HTTP(S) 기반 또는 파일 기반일 수 있습니다. URL이 HTTP(S) 기반인 경우 브로커 시작 시 구성된 URL을 통해 OAuth/OIDC 제공업체에서 JWKS 데이터가 검색됩니다. 이후의 모든 최신 키는 들어오는 요청을 위해 브로커에 캐시됩니다. 캐시에 아직 없는 "kid" 헤더 클레임 값을 포함하는 JWT에 대한 인증 요청이 수신되면 필요에 따라 JWKS 엔드포인트가 다시 쿼리됩니다. 그러나 브로커는 모든 sasl.oauthbearer.jwks.endpoint.refresh.ms 밀리초를 폴링하여 해당 URL을 포함하는 JWT 요청이 수신되기 전에 향후 키로 캐시를 새로 고칩니다. URL이 파일 기반이면 브로커는 시작 시 구성된 위치에서 JWKS 파일을 로드합니다. JWT에 JWKS 파일에 없는 "kid" 헤더 값이 포함된 경우 브로커는 JWT를 거부하고 인증이 실패합니다.
sasl.oauthbearer.token.endpoint.url
유형: 문자열
기본값: null
Importance: medium
OAuth/OIDC ID 공급자의 URL입니다. URL이 HTTP(S) 기반인 경우 sasl.jaas.config의 구성에 따라 로그인할 요청의 발행자 토큰 끝점 URL입니다. URL이 파일 기반인 경우 권한 부여에 사용할 OAuth/OIDC ID 공급자가 발행한 액세스 토큰( JWT로 직렬화된 양식)이 포함된 파일을 지정합니다.
security.protocol
유형: 문자열
기본값: PLAINTEXT
유효한 값: (대소문자 구분) [SASL_SSL, PLAINTEXT, SSL, SASL_PLAINTEXT]
Importance: medium
브로커와 통신하는 데 사용되는 프로토콜입니다. 유효한 값은 PLAINTEXT, SSL, SASL_PLAINTEXT, SASL_SSL입니다.
send.buffer.bytes
유형: int
기본값: 131072(128 kibibytes)
유효한 값: [-1,…]
Importance: 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초)
중요도: 중간
클라이언트가 소켓 연결이 설정될 때까지 대기하는 시간입니다. 시간 초과가 경과하기 전에 연결이 빌드되지 않으면 클라이언트가 소켓 채널을 종료합니다. 이 값은 초기 백오프 값이며
socket.connection.setup.timeout.max.ms
값까지 연속된 각 연결 오류에 대해 기하급수적으로 증가합니다.ssl.enabled.protocols
type: list: list
default: TLSv1.2,TLSv1.3
Importance: medium
SSL 연결에 활성화된 프로토콜 목록입니다. Java 11 이상에서 실행하는 경우 기본값은 'TLSv1.2,TLSv1.3'이며, 그렇지 않으면 'TLSv1.2'입니다. Java 11의 기본값을 사용하면 클라이언트와 서버는 TLSv1.2를 지원하고 그 대신 TLSv1.2를 모두 지원하는 경우 TLSv1.3을 선호합니다(적어도 TLSv1.2 이상 지원). 대부분의 경우 이 기본값은 정상이어야 합니다.
ssl.protocol
의 구성 문서를 참조하십시오.ssl.keystore.type
유형: 문자열
기본값: JKS
중요도: 중간
키 저장소 파일의 파일 형식입니다. 클라이언트에는 선택 사항입니다. 현재 기본
ssl.engine.factory.class
에서 지원하는 값은 [JKS, PKCS12, PEM]입니다.ssl.protocol
유형: 문자열
기본값: TLSv1.3
중요도: 중간
SSLContext를 생성하는 데 사용되는 SSL 프로토콜입니다. Java 11 이상에서 실행하는 경우 기본값은 'TLSv1.3'이며, 그렇지 않으면 'TLSv1.2'입니다. 이 값은 대부분의 사용 사례에 적합해야 합니다. 최근 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
유형: 문자열
기본값: null
Importance: medium
SSL 연결에 사용되는 보안 공급자의 이름입니다. 기본값은 JVM의 기본 보안 공급자입니다.
ssl.truststore.type
유형: 문자열
기본값: JKS
중요도: 중간
신뢰 저장소 파일의 파일 형식입니다. 현재 기본
ssl.engine.factory.class
에서 지원하는 값은 [JKS, PKCS12, PEM]입니다.auto.commit.interval.ms
유형: int
기본값: 5000 (5초)
유효한 값: [0,…]
중요: 낮음
enable.auto.commit
가true
로 설정된 경우 소비자 오프셋이 Kafka로 자동 커밋되는 빈도(밀리초)입니다.auto.include.jmx.reporter
유형: 부울
기본값: true
Importance: low
더 이상 사용되지 않습니다.
metric.reporters
에 나열되지 않은 경우에도 JmxReporter를 자동으로 포함할지 여부입니다. 이 구성은 Kafka 4.0에서 제거되며 대신 JmxReporter를 활성화하려면metric.reporters
에org.apache.kafka.common.metrics.JmxReporter
를 포함해야 합니다.check.crcs
유형: 부울
기본값: true
Importance: low
사용된 레코드의 CRC32를 자동으로 확인합니다. 이렇게 하면 메시지에 대한 on-the-wire 또는 온-디스크 손상이 발생하지 않았습니다. 이 검사에는 오버헤드가 추가되므로 극단적인 성능을 원하는 경우 비활성화될 수 있습니다.
client.id
유형: 문자열
기본값: ""
중요도: 낮음
요청을 수행할 때 서버에 전달할 id 문자열입니다. 이를 위해 논리적 애플리케이션 이름을 서버 측 요청 로깅에 포함하도록 허용하여 ip/port 이외의 요청 소스를 추적할 수 있습니다.
client.rack
유형: 문자열
기본값: ""
중요도: 낮음
이 클라이언트의 랙 식별자입니다. 이 값은 이 클라이언트가 물리적으로 위치한 위치를 나타내는 모든 문자열 값일 수 있습니다. 브로커 구성 'broker.rack'에 해당합니다.
enable.metrics.push
유형: 부울
기본값: true
Importance: low
클라이언트 메트릭을 클러스터로 내보낼지 여부(클러스터에 이 클라이언트와 일치하는 클라이언트 지표 서브스크립션이 있는 경우).
fetch.max.wait.ms
유형: int
기본값: 500
유효한 값: [0,…]
중요도: 낮음
fetch.min.bytes에서 제공한 요구 사항을 즉시 충족할 수 있는 데이터가 충분하지 않은 경우 서버가 가져오기 요청에 응답하기 전에 차단되는 최대 시간입니다.
interceptor.classes
type: list
default: ""
유효한 값: non-null string
Importance: low
인터셉터로 사용할 클래스 목록입니다.
org.apache.kafka.clients.consumerInterceptor
인터페이스를 구현하면 소비자가 수신한 레코드를 가로챌 수 있습니다. 기본적으로 인터셉터가 없습니다.metadata.max.age.ms
유형: long
기본값: 300000 (5분)
유효한 값: [0,…]
중요: 낮음
파티션 리더십 변경 사항을 보지 못하더라도 새 브로커 또는 파티션을 사전에 검색하지 못한 경우에도 메타데이터를 강제로 새로 고침한 후 밀리초 단위입니다.
metric.reporters
type: list
default: ""
유효한 값: non-null string
Importance: low
메트릭 보고자로 사용할 클래스 목록입니다.
org.apache.kafka.common.metrics.MetricsReporter
인터페이스를 구현하면 새 메트릭 생성을 알리는 클래스를 연결할 수 있습니다. JmxReporter는 항상 statistics를 등록하기 위해 포함되어 있습니다.metrics.num.samples
유형: int
기본값: 2
유효한 값: [1,…]
중요도: 낮음
컴퓨팅 메트릭에 유지 관리되는 샘플 수입니다.
metrics.recording.level
유형: 문자열
기본값: INFO
유효한 값: [INFO, DEBUG, TRACE]
Importance: low
메트릭의 가장 높은 레코딩 수준입니다.
metrics.sample.window.ms
유형: long
기본값: 30000(30초)
유효한 값: [0,…]
중요도: 낮음
메트릭 샘플이 계산되는 시간입니다.
reconnect.backoff.max.ms
유형: long
기본값: 1000 (1 second)
유효한 값: [0,…]
중요도: 낮음
반복적으로 연결하지 못한 브로커에 다시 연결할 때 대기하는 최대 시간(밀리초)입니다. 제공된 경우 호스트당 백오프는 연속되는 각 연결 오류에 대해 이 최대값까지 기하급수적으로 증가합니다. 백오프 증가를 계산한 후 연결 측정을 방지하기 위해 20%의 임의 지터가 추가됩니다.
reconnect.backoff.ms
유형: long
기본값: 50
유효한 값: [0,…]
중요도: 낮음
지정된 호스트에 다시 연결하기 전에 대기하는 기본 시간입니다. 이렇게 하면 하드 루프로 호스트에 반복적으로 연결하는 것을 방지할 수 있습니다. 이 백오프는 클라이언트가 브로커에 대한 모든 연결 시도에 적용됩니다. 이 값은 초기 backoff 값이며,
reconnect.backoff.max.ms
값까지 연속된 각 연결 오류에 대해 기하급수적으로 증가합니다.retry.backoff.max.ms
유형: long
기본값: 1000 (1 second)
유효한 값: [0,…]
중요도: 낮음
반복적으로 실패한 브로커에 대한 요청을 재시도할 때 대기하는 최대 시간(밀리초)입니다. 제공된 경우 클라이언트당 백오프는 실패한 각 요청에 대해 이 최대값까지 기하급수적으로 증가합니다. 재시도 시 모든 클라이언트가 동기화되지 않도록 0.2의 비율을 가진 임의의 지터가 백오프에 적용되므로 계산된 값보다 20% 이하에서 20% 사이의 백오프가 백오프됩니다.
retry.backoff.ms
가retry.backoff.max.ms
보다 높게 설정된 경우retry.backoff.max.ms
는 기하급수적으로 증가하지 않고 처음부터 일정한 백오프로 사용됩니다.retry.backoff.ms
유형: long
기본값: 100
유효한 값: [0,…]
중요도: 낮음
지정된 주제 파티션에 대한 실패한 요청을 재시도하기 전에 대기하는 시간입니다. 이렇게 하면 일부 실패 시나리오에서 엄격한 루프로 요청을 반복적으로 보내는 것을 방지할 수 있습니다. 이 값은 초기 backoff 값이며,
retry.backoff.max.ms
값까지 실패한 각 요청에 대해 기하급수적으로 증가합니다.sasl.kerberos.kinit.cmd
유형: 문자열
기본값: /usr/bin/kinit
Importance: low
Kerberos kinit 명령 경로입니다.
sasl.kerberos.min.time.before.relogin
유형: long
기본값: 60000
중요도: 낮음
새로 고침 시도 사이의 로그인 스레드 수면 시간입니다.
sasl.kerberos.ticket.renew.jitter
유형: 두 번
기본값: 0.05
중요도: 낮음
갱신 시간에 임의 지터의 백분율이 추가되었습니다.
sasl.kerberos.ticket.renew.window.factor
유형: double
기본값: 0.8
중요도: 낮음
로그인 스레드는 지정된 시간 요소가 마지막으로 새로 고침에서 티켓 만료로 도달할 때까지 유휴 상태가 되고 이 기간 동안 티켓을 갱신하려고 합니다.
sasl.login.connect.timeout.ms
유형: int
default: null
Importance: low
외부 인증 공급자 연결 시간 초과의 (선택 사항) 값(선택 사항)입니다. 현재 OAUTHBEARER에만 적용됩니다.
sasl.login.read.timeout.ms
유형: int
default: null
Importance: low
외부 인증 공급자의 (선택 사항) 값(선택 사항)은 시간 초과입니다. 현재 OAUTHBEARER에만 적용됩니다.
sasl.login.refresh.buffer.seconds
유형: short
기본값: 300
유효한 값: [0,…,3600]
중요도: 낮음
인증 정보를 새로 고칠 때 유지 관리하는 인증 정보 만료 전의 버퍼 시간(초)입니다. 새로 고침이 버퍼 초 수보다 만료되는 경우 새로 고침은 가능한 한 많은 버퍼 시간을 유지하기 위해 이동합니다. 법적 값은 0에서 3600(1시간) 사이입니다. 값이 지정되지 않은 경우 기본값 300(5분)이 사용됩니다. 이 값과 sasl.login.refresh.min.period.seconds 값은 합계가 인증 정보의 나머지 수명을 초과하면 둘 다 무시됩니다. 현재 OAUTHBEARER에만 적용됩니다.
sasl.login.refresh.min.period.seconds
유형: short
기본값: 60
유효한 값: [0,…,900]
중요도: 낮음
로그인 새로 고침 스레드가 인증 정보를 새로 고치기 전에 대기하는 최소 시간(초)입니다. 법적 값은 0에서 900 (15 분) 사이입니다. 값이 지정되지 않은 경우 기본값 60 (1 분)이 사용됩니다. 이 값과 sasl.login.refresh.buffer.seconds 값은 합계가 인증 정보의 나머지 수명을 초과하면 둘 다 무시됩니다. 현재 OAUTHBEARER에만 적용됩니다.
sasl.login.refresh.window.factor
유형: double
기본값: 0.8
유효한 값: [0.5,…,1.0]
중요: 낮음
로그인 새로 고침 스레드는 인증 정보의 수명을 기준으로 지정된 창 요인에 도달할 때까지 유휴 상태가 되어 인증 정보를 새로 고치려고 합니다. 법적 값은 0.5(50%)와 1.0(100%)을 포함합니다. 값이 지정되지 않은 경우 기본값 0.8(80%)가 사용됩니다. 현재 OAUTHBEARER에만 적용됩니다.
sasl.login.refresh.window.jitter
유형: double
기본값: 0.05
유효한 값: [0.0,…,0.25]
중요도: 낮음
로그인 새로 고침 스레드의 수면 시간에 추가되는 인증 정보의 수명을 기준으로 임의 지터의 최대 양입니다. 법적 값은 0에서 0.25 (25 %) 사이이며, 값이 지정되지 않은 경우 기본값 0.05 (5%)가 사용됩니다. 현재 OAUTHBEARER에만 적용됩니다.
sasl.login.retry.backoff.max.ms
유형: long
기본값: 10000(10초)
중요도: 낮음
(선택 사항) 외부 인증 공급자에 대한 로그인 시도 사이의 최대 대기 시간(밀리초)입니다. login은 sasl.login.retry.backoff.ms 설정을 기반으로 초기 대기와 함께 지수 백오프 알고리즘을 사용하고 sasl.login.retry.max.ms 설정에 의해 지정된 최대 대기 길이까지의 대기 길이를 두 배로 늘립니다. 현재 OAUTHBEARER에만 적용됩니다.
sasl.login.retry.backoff.ms
유형: long
기본값: 100
중요도: 낮음
(선택 사항) 초기 대기 시간(선택 사항) 값(선택 사항)을 외부 인증 공급자로 시도하는 경우 초기 대기 시간(밀리초)입니다. login은 sasl.login.retry.backoff.ms 설정을 기반으로 초기 대기와 함께 지수 백오프 알고리즘을 사용하고 sasl.login.retry.max.ms 설정에 의해 지정된 최대 대기 길이까지의 대기 길이를 두 배로 늘립니다. 현재 OAUTHBEARER에만 적용됩니다.
sasl.oauthbearer.clock.skew.seconds
유형: int
기본값: 30
Importance: low
OAuth/OIDC ID 공급자와 브로커 간의 차이점을 허용하는 (선택 사항) 값(초)입니다.
sasl.oauthbearer.expected.audience
type: list
default: null
Importance: low
브로커에서 JWT가 예상 대상 중 하나에 대해 발행되었는지 확인하는 데 사용할 (선택 사항) 쉼표로 구분된 설정입니다. JWT는 표준 OAuth "aud" 클레임을 검사하고 이 값이 설정되면 브로커가 JWT의 "aud" 클레임의 값과 일치하여 정확히 일치하는지 확인합니다. 일치하는 항목이 없으면 브로커는 JWT를 거부하고 인증이 실패합니다.
sasl.oauthbearer.expected.issuer
유형: 문자열
기본값: null
Importance: low
브로커가 JWT가 예상 발행자에 의해 생성되었는지 확인하는 데 사용할 (선택 사항) 설정입니다. JWT는 표준 OAuth "iss" 클레임을 검사하고 이 값이 설정되면 브로커는 JWT의 "iss" 클레임에 있는 것과 정확히 일치합니다. 일치하는 항목이 없으면 브로커는 JWT를 거부하고 인증이 실패합니다.
sasl.oauthbearer.jwks.endpoint.refresh.ms
유형: long
기본값: 3600000(1시간)
중요도: 낮음
브로커가 JWT의 서명을 확인하는 키가 포함된 JWKS(JSON 웹 키 세트) 캐시 새로 고침 사이에 대기하는 (선택 사항) 시간(선택 사항)입니다.
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.retry.max.ms 설정으로 지정된 최대 대기 길이까지의 대기 길이를 두 배로 늘릴 것입니다.
sasl.oauthbearer.jwks.endpoint.retry.backoff.ms
유형: long
기본값: 100
중요도: 낮음
JWKS(JSON Web Key Set) 검색 사이의 초기 대기 시간(선택 사항)에서 외부 인증 공급자의 (선택 사항) 값(밀리초)입니다. JWKS 검색에서는 sasl.oauthbearer.jwks.endpoint.retry.backoff.ms 설정을 기반으로 초기 대기와 함께 지수 백오프 알고리즘을 사용하며 sasl.oauthbearer.jwks.endpoint.retry.max.ms 설정으로 지정된 최대 대기 길이까지의 대기 길이를 두 배로 늘릴 것입니다.
sasl.oauthbearer.scope.claim.name
유형: 문자열
기본값: 범위
중요: 낮음
범위에 대한 OAuth 클레임은 종종 "scope"로 지정되지만 이(선택 사항) 설정은 OAuth/OIDC 공급자가 해당 클레임에 다른 이름을 사용하는 경우 JWT 페이로드의 클레임에 포함된 범위에 사용할 다른 이름을 제공할 수 있습니다.
sasl.oauthbearer.sub.claim.name
유형: 문자열
기본값: sub
Importance: low
주체에 대한 OAuth 클레임은 종종 "sub"라고 하지만 이(선택 사항) 설정은 OAuth/OIDC 공급자가 해당 클레임에 다른 이름을 사용하는 경우 JWT 페이로드의 클레임에 포함된 주체에 사용할 다른 이름을 제공할 수 있습니다.
security.providers
유형: 문자열
기본값: null
Importance: low
구성 가능한 작성자 클래스 목록은 각각 보안 알고리즘을 구현하는 공급자를 반환합니다. 이러한 클래스는
org.apache.kafka.common.security.auth.SecurityProviderCreator
인터페이스를 구현해야 합니다.ssl.cipher.suites
type: list
default: null
Importance: low
암호화 제품군 목록입니다. 이는 TLS 또는 SSL 네트워크 프로토콜을 사용하여 네트워크 연결에 대한 보안 설정을 협상하는 데 사용되는 인증, 암호화, MAC 및 키 교환 알고리즘의 이름이 지정된 조합입니다. 기본적으로 사용 가능한 모든 암호화 제품군이 지원됩니다.
ssl.endpoint.identification.algorithm
유형: 문자열
기본값: https
Importance: low
서버 인증서를 사용하여 서버 호스트 이름을 확인하는 끝점 식별 알고리즘입니다.
ssl.engine.factory.class
유형: class
Default: null
Importance: low
SSLEngine 개체를 제공하는 org.apache.kafka.common.security.auth.SslEngineFactory 유형의 클래스입니다. 기본값은 org.apache.kafka.common.security.ssl.DefaultSslEngineFactory입니다. 또는 이를 org.apache.kafka.common.security.ssl.CommonNameLoggingSslEngineFactory로 설정하면 클라이언트가 로그 수준 INFO를 가진 브로커에서 인증하기 위해 클라이언트가 사용하는 만료된 SSL 인증서의 공통 이름을 기록합니다. 이로 인해 클라이언트가 제공하는 인증서 체인을 검사하기 위한 추가 코드로 인해 mTLS 클라이언트에서 브로커로의 새 연결을 설정하는 동안 약간의 지연이 발생합니다. 구현에서는 표준 Java 신뢰 저장소를 기반으로 사용자 정의 신뢰 저장소를 사용하므로 표준 클라이언트만큼 완성되지 않기 때문에 보안 위험으로 간주될 수 있습니다.
ssl.keymanager.algorithm
유형: 문자열
기본값: SunX509
중요: 낮음
SSL 연결에 대해 키 관리자 팩토리에서 사용하는 알고리즘입니다. 기본값은 Java Virtual Machine에 대해 구성된 키 관리자 팩토리 알고리즘입니다.
ssl.secure.random.implementation
유형: 문자열
기본값: null
Importance: low
SSL 암호화 작업에 사용할 SecureRandom PRNG 구현
ssl.trustmanager.algorithm
유형: 문자열
기본값: PKIX
Importance: low
SSL 연결에 대해 신뢰 관리자 팩토리에서 사용하는 알고리즘입니다. 기본값은 Java 가상 머신에 대해 구성된 신뢰 관리자 팩토리 알고리즘입니다.