본문 바로가기
Data PipeLine/Kafka

[Kafka] 3.5.x Release note 주요 내용 정리

by 연습장이 2024. 2. 18.
728x90
반응형

목적

  카프카 브로커의 버전 업그레이드 시 발생할 수 있는 사이드 이펙트를 사전파악 및 대응, 신기술에 대한 도입 검토하기 위함

Release note Clause

3.5.0

Notable Changes

  • 키당 여러 레코드 버전을 저장할 수 있는 새로운 상태 저장소 유형인 "버전별 키-값 저장소"가 도입되어, 타임스탬프가 지정된 타임스탬프 기준의 최신 레코드(키당)를 반환하는 타임스탬프 검색 작업이 가능해짐
  • Table 집계 시맨틱이 더욱 개선되어 이제 가짜 중간 결과를 방지함
  • 카프카 스트림즈의 ProductionExceptionHandler가 개선되어 이제 직렬화 에러를 커버함
  • 만료된 alterConfigs API 대신 미러메이커는 이제 토픽 설정을 동기화하기 위해 incrementalAlterConfigs API를 기본적으로 사용함. 또한 새로운 설정인 use.incremental.alter.configs는 어느 API를 사용할지 사용자가 지정할 수 있도록 함. 다음 메이저 버전에 이 옵션은 만료되고 제거됨

New Feature

  • -

Improvement

  • KafkaConsumer는 닫을 때 이것의 증분 fetch 세션도 닫도록 함 
  • 직렬화 예외를 커버하도록 ProductionExceptionHandler를 확장함
  • 복구가 끝나면 체크포인트하도록 함
  • ProducerCount 메트릭을 추가함
  • KRaft 모드를 사용할 때 SCRAM를 지원함
  • KRaft 내 컨트롤 뮤테이션 쿼타를 구현함
  • Fetcher로부터 공통 로직을 추출함
  • 환경 변수의 사용을 위해 ConfigProvvider를 추가함
  • 카프카 스트림즈에 대한 클라이언트 공급자를 설정하기 위한 설정을 추가함
  • transaction.timeout.ms에 대한 문서가 더욱 명확하게 변경됨
  • ConcurrentModificationException 메시지 내 현재 스레드ID를 포함함
  • 컨트롤러 인증을 위해 브로커에 대한 SCRAM를 추가함
  • RemoteLogMetadata에 대한 메시지 포매터를 제공함

Bug

  • 널허용 필드임에도 커넥트에서 JsonConverter가 널값을 기본값으로 바꾸는 버그가 수정됨
  • 워커가 셧다운될 때 ConnectorClientConfigOverridePolicy가 닫히지 않는 버그가 수정됨
  • Raft idle ratio가 정확하지 않는 버그가 수정됨
  • 제거된 리스너가 재설정될 수 있는 버그가 수정됨
  • 브로커에 권한 부여자가 설정되지 않은 경우 토픽 ACL을 동기화하는 동안 미러메이커2가 에러를 잘못 기록함
  • base4 JSON 문자열을 역직렬화할 수 없는 버그가 수정됨
  • 다중 인풋 파티션에 대해 Outer 스트림-스트림 조인이 모든 결과를 아웃풋할 수 없는 버그가 수정됨
  • KafkaBasedLog의 무한 재시도가 StackOverflowError를 야기할 수 있는 버그가 수정됨
  • 마이그레이션하는 동안 새로운 ACLs가 주키퍼에 쓰여지지 않는 버그가 수정됨
  • 브로커 하트비트 타임아웃의 처리를 개선함

Task

  • 전용 미러메이커2 클러스터 내 분산 모드 완벽 지원
  • 프로세스 루프 내 한번 이상 state updater를 체크함

Test

  • -

Sub-task

  • -
  • tiered storage 내 트랜잭션을 지원함
  • KRaft 옵저버가 매번 append할 때마다 flush할 필요가 없도록 함
  • GroupCoordinator 인터페이스를 도입함
  • ConsumerGroupHeartbeat API를 추가함
  • 컨슈머 랙이 설정되었다면 range assignor가 랙을 인식할 수 있도록 함
  • 컨슈머 랙이 설정되었다면 sticky assingors가 랙을 인식할 수 있도록 함
  • 새로운 __consumer_offsets 레코드를 추가함
  • 커넥터에 대해 새로운 STOPPED 상태를 구현함
  • 커넥터 오프셋 읽기 REST API를 구현함
  • 오프셋 커밋 동안 토픽ID를 그룹 코디네이터에게 전파하도록 함
  • 클라이언트 랙이 설정되었다면 레플리카 랙이 변경될 때 리밸런스를 발동함

3.5.1

Notable Changes

  • 3.3.0에 도입된 security.protocol 설정이 대문자만 인식하는 버그가 수정됨. 이제 대소문자 구분 안함

New Feature

  • -

Improvement

  • -

Bug

  • authorizer.class.name이 설정되면 KRaft 마이그레이션이 수행되지 않고 브로커가 죽는 버그가 수정됨

Task

  • -

Test

  • -

Sub-task

  • -

3.5.2

Notable Changes

  • 프로듀서ID 블록을 주키퍼에서 KRaft로 마이그레이션할 때, 트랜잭션 프로듀서 또는 idempotent 프로듀서에게 중복된 프로듀서 ID를 부여할 수 있음. 이것은 프로듀서ID가 오랫동안 유지되고 재사용되기 때문에 장기적인 문제를 야기할 수 있음
  • 3.5.0과 3.5.1에서 롤링 업그레이드 중에 AlterPartition 요청 후 컨트롤러에서 빈 ISR이 반환되는 문제가 발생함. 이 문제는 토픽 파티션의 가용성에 영향을 미침

New Feature

  • -

Improvement

  • -

Bug

  • block-cache-capacity 메트릭이 평소보다 두배나 증가되는 버그가 수정됨
  • AlterPartition 요청 후에 컨트롤러로부터 비어있는 ISR이 반환되는 버그가 수정됨
  • KRaft 모드에서 실행중에 실수로 LogManager가 CleanShutdown 파일을 생성하는 버그가 수정됨
  • 커넥트 내 스케쥴링된 리밸런스 지연을 비활성화하면 커넥트와 타스크가 무기한 할당되지 않을수 있음

Task

  • -

Test

  • -

Sub-task

  • -

참고

728x90
반응형