본문 바로가기
Data PipeLine/Kafka

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

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

목적

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

Release note Clause

3.1.0

Notable Changes

  • 아파치 카프카가 자바 17 버전을 지원함
  • 아래 메트릭이 만료되어 다음으로 사용해야 함
    • bufferpool-wait-time-total > bufferpool-wait-time-ns-total
    • io-waittime-total > io-wait-time-ns-total
    • iotime-total > io-time-ns-total
  • eager 리밸런싱 프로토콜이 이제 제거됨. 따라서, 카프카 브로커 2.4 이전 버전을 사용하는 유저는 2.4 - 3.1 사이 버전을 한번 경우해야 함

New Feature

  • OIDC에 대한 지원으로 SASL/OAUTHBEARER를 확장함

Improvement

  • 톰스톤이 영원히 생존할 수 있도록함
  • release 스크립트를 Python3로 업그레이드함
  • 미러메이커2 내부 토픽 네이밍 변환을 제어하기 위해 추가적인 설정을 추가함
  • 클래스 변환 예외에 대해 에러 메시지를 개선함
  • kafka-acls.sh 내 --authorizer 옵션을 만료하고 제거함
  • 토픽ID를 사용할 때 Fetch Sessions를 다시 평가함
  • millis와 nanos로 측정된 메트릭 지연을 구분함
  • 카프카 스트림즈 내 EAGER 리밸런싱을 만료함

Bug

  • 커넥터에 대해 생성된 타스크가 없는 버그가 수정됨
  • 컨슈머가 같은 이름으로 토픽을 삭제하고 재생성하는 것을 잘못 처리하는 버그가 수정됨
  • 싱크 타스크 역직렬화 에러에 대한 과도한 로깅이 발생하는 버그가 수정됨
  • Fetch requests 내 forgotten Topics가 토픽ID를 잘못 사용할 수 있는 버그가 수정됨
  • Fetch path에 대해 토픽ID가 메타데이터 캐시로 충분히 빠르게 전파되지 않는 버그가 수정됨
  • 인스턴스를 구현한 KeyValueIterator가 닫아지지 않아 리소스 누수가 발생하는 버그가 수정됨
  • 토픽이 삭제처리 되고 같은 이름으로 생성시 토픽이 이미 있다고 발생하는 버그가 수정됨
  • LogCleaner가 과거의 HWM을 클린할 수 있는 버그가 수정됨
  • 할당자명이 동일하면 잘못된 할당자가 선택될 수 있는 버그가 수정됨
  • 일부 파티션을 사용할 때 KTable과 KTAble의 외래키 조인이 이벤트를 잃어버리는 버그가 수정됨
  • 컨트롤러에 의해 더 보낼게 없어도 PartitionFetchState로부터 토픽ID가 지워지지 않는 버그가 수정됨
  • 미러메이커2가 커넥트의 내부토픽을 미러링하는 버그가 수정됨
  • KRaft createTopics와 incrementalAlterConfigs의 일부 문제가 수정됨
  • topicIdsToNames와 TopicNamesToIds가 불필요하게 맵을 할당하는 버그가 수정됨

Task

  • RocksDB를 6.22.1.1로 업그레이드함

Test

  • stickyAssignor에 대한 테스트 범위 개선

Sub-task

  • RemoteLogMetadataManager에 대한 토픽 기반 구현 수행
  • 토픽ID를 사용하여 토픽 설명을 지원함
  • Log Layer를 Log와 LocalLog로 나눔
  • 각 파티션에 대해 소비된 원격 로그 메타데이터에 대한 파일 기반 캐시를 추가하여, 브로커 재시작 시 다시 소비되는 것을 방지함
  • Log를 UnifiedLog로 개명함
  • ActiveBrokerCount와 FencedBrokerCount 메트릭을 주키퍼 컨트롤러에 추가함
  • ActiveBorkerCount와 FencedBorkerCount 메트릭을 KRaft 컨트롤러에 추가함

3.1.1

Notable Changes

  • 충돌하는 설정이 없다면 프로듀서의 idempotence가 기본적으로 활성화됨
  • 광범위한 브로커 버전을 균일하게 지원하기 위해 기본적으로 모든 프로듀서에 대해 idempotent 동작이 비활성화됨. 사용자는 일부 혹은 모든 프로듀서에 이 기능을 활성화할 수 있고 향후에는 기본적으로 활성화되게 할 것임
  • 카프카는 보안 요건으로 인해 log4j 와 slf4j-log4j12를 reload4j와 slf4j-reload4j로 교체함

New Feature

  • -

Improvement

  • 자바에서 uuid 비교를 할 때 '==' 대신 'equals'를 사용하도록 함

Bug

  • CHECKING_API_VERSIONS 내에서 카프카 프로듀서 노드가 멈추는 버그가 수정됨
  • 타임아웃 후에 initTransactions의 재시도가 잘못된 전환을 야기할 수 있는 버그가 수정됨
  • TLS1.3 버전에서 브로커가 간헐적으로 연결이 끊어지는 버그가 수정됨
  • 토픽 파티션 추가에 KRaft가 잘못된 권한을 사용하는 버그가 수정됨
  • 커넥터 재시작이 중복된 타스크를 야기하는 버그가 수정됨
  • left join이 경우에 따라 stream-stream 조인에서 여전히 잘못된 결과를 생성하는 버그가 수정됨
  • 프로듀서가 올바른 파티션을 트랜잭션에 추가하는 것을 실패할 수도 있는 버그가 수정됨

Task

  • -

Test

  • -

Sub-task

  • -

3.1.2

Notable Changes

  • -

New Feature

  • -

Improvement

  • -

Bug

  • OAuth 클라이언트 토큰 리프레쉬가 SASL 확장에서 실패할 수 있는 버그가 수정됨

Task

  • -

Test

  • -

Sub-task

  • -

참고

 

728x90
반응형