728x90
반응형
목적
카프카 브로커의 버전 업그레이드 시 발생할 수 있는 사이드 이펙트를 사전파악 및 대응, 신기술에 대한 도입 검토하기 위함
Release note Clause
3.3.0
Notable Changes
- 새로운 클러스터에서 KRaft 모드가 운영 준비가 됨
- 키가 없는 레코드에 기본적으로 사용되는 파티셔너가, 하나 이상의 브로커가 느릴 때 이상한 동작을 방지하도록 개선됨. 새로운 로직은 배치 처리 동작에 영향을 미칠 수 있으며 이는 batch.size 또는 linger.ms 설정을 통해 조정할 수 있음. 또한 partitioner.class=org.apache.kafka.clients.producer.internals.DefaultPartitioner를 사용하여 이전 동작으로 원복할 수 있음
- 위에서 설명한 것처럼, KRaft 클러스터의 업그레이드 프로세스가 주키퍼 기반 클러스터와 약간 다름
New Feature
- 소스 커넥터의 트랜잭션단위 EoS(End Of Stream, 메시지를 더 안정적으로 처리한다는 뜻)
- 소스 커넥터 레코드와 오프셋에 대한 세밀한 커밋을 지원함
- 배치된 오프셋 fetch 요청에 대한 Admin API를 추가함
- KafkaStreams Topologies를 잠시 중지/ 재개할 수 있도록 함
- 로그 회복 처리에 대한 메트릭을 추가함
Improvement
- kafka-dump-log.sh를 사용할 때 배치의 수를 제한함
- 커넥트 REST API에 대한 doc를 발생함
- 설정과 관련된 직렬화와 역직렬화에 대한 validators를 추가함
- kafka zero-copy에 대한 문서를 개선함
- 삭제중인 레플리카에 대해 재초기화를 피함
- ssl.keystore.type과 ssl.truststore.type의 문서를 개선함
- kafka-metadata-quorum.sh를 구현함
- KRaft 내 ISR에 Fenced 레플리카가 조인을 허용하지 못하도록 함
Bug
- Sticky 파티션으로 인해 메시지가 고르지 않게 분포되어 일부 파티션에서는 비정상적인 지연이 발생되는 버그가 수정됨
- 카프카 설정과 로그 설정 사이에 비일관성이 발생하는 버그가 수정됨
- 타겟 파티션이 비어있을 때 미러메이커2 오프셋 동기화가 올바르지 않는 버그가 수정됨
- PEM 파일을 사용할 때 암호화되지 않은 private keys를 사용하는 버그가 수정됨
- 컨트롤러가 알수 없는 API를 사용할 때 EOFException이 발생하는 버그가 수정됨
- doc 내에 BrokerTopicMetrics 메트릭이 생략된 것을 수정함
- AbstractConfig 로그 출력 정보가 올바르지 못한 버그가 수정됨
- kraft 컨트롤러가 토픽을 생성할 때 메트릭 이름과 동일한 토픽을 생성하는 것을 허용하는 버그가 수정됨
- KRaft 모드에서 validateOnly 요청 필드가 CreatePartition 요청에 대해 동작하지 않는 버그가 수정됨
- KRaft 모드에서 Add와 Subtract 다중 설정값이 지원되지 않는 버그가 수정됨
- 키가 없는 메시지에 대해 DefaultStreamPartitioner가 하나의 파티션에 대해 멈출 수 있음
- rebalanceInProgress 에러로 실패한 싱크 그룹이 협력적인 모드로 많은 리밸런스를 야기할 수 있는 버그가 수정됨
- KRaft 내에서 셧다운 중인 브로커가 파티션 리더로 선출될 수 있는 버그가 수정됨
- 브로커가 unfenced 상태여도 스냅샷을 발생하는 버그가 수정됨
- log.cleaner.io.max.bytes.per.second 파라미터가 동적으로 바뀌지 않는 버그가 수정됨
- onJoinPrepare 내 커밋 오프셋에 대해 컨슈머가 협력적인 리밸런스 동안 멈추는 버그가 수정됨
- Kraft 컨트롤러 로컬 타임이 올바르게 계산되지 않는 버그가 수정됨
- 엄청 큰 배치에 대해 QuorumController가 올바르게 처리하지 못하는 버그가 수정됨
- KRaft 레플리카가 스냅샷에 포함되지 않은 세그먼트를 삭제할 수 있는 버그가 수정됨
Task
- KRaft에 대한 빠른시작 가이드를 제공함
Test
- -
Sub-task
- 사용자가 다른 사용자를 위해 위임 토큰을 획득할 수 있도록 지원을 추가함
- KRaft 내 metadata.version을 도입함
- kraft 컨트롤러의 디스크 실패에 대한 복구 방법을 문서화함
3.3.1
Notable Changes
- -
New Feature
- -
Improvement
- -
Bug
- -
Task
- -
Test
- -
Sub-task
- -
3.3.2
Notable Changes
- -
New Feature
- -
Improvement
- KRaft 브로커 하트비트 타임아웃이 broker.session.timeout.ms를 초과하지 않도록 개선함
Bug
- 정적 멤버가 다시 조인할 때 리밸런스 타임아웃이 갱신되지 않는 버그가 수정됨
- 메시지 처리할 때 RecordCollector가 예외를 던지는 버그가 수정됨
- 셧다운하는 KRaft 브로커가 무기한으로 지연되는 버그가 수정됨
- 해임 후 KRaft 컨트롤러 스냅샷이 트리거 되지 않는 버그가 수정됨
- 레코드 키가 없고 batch.size=0인 Producer.send 가 무한루프에 빠지는 버그가 수정됨
- 토픽명에 "."이 포함되었을 때 이를 삭제 후 재생성할 수 없는 버그가 수정됨
- 오프셋이 직렬화될 수 없음에도 소스 타스크 프로듀서가 트랜잭션을 커밋하는 버그가 수정됨
- 메타데이터를 갱신하면서 컨슈머가 선호 읽기 레플리카를 리프레쉬할 수 없는 버그가 수정됨
- 리밸런싱 동안 레코드를 처리할 때 streamThreads가 리밸런스 이벤트를 유실할 수 있는 버그가 수정됨
- 정적 멤버를 지원하지 않는 멤버가 포함된 그룹에 조인 후ㅠ에 컨슈머 리밸런스가 멈추는 버그가 수정됨
Task
- -
Test
- -
Sub-task
- -
참고
- 3.3.0 Release note doc
archive.apache.org/dist/kafka/3.3.0/RELEASE_NOTES.html - 3.3.1 Release note doc
archive.apache.org/dist/kafka/3.3.1/RELEASE_NOTES.html - 3.3.2 Release note doc
archive.apache.org/dist/kafka/3.3.2/RELEASE_NOTES.html - 3.3.x Notable Changes doc
Apache Kafka
728x90
반응형
'Data PipeLine > Kafka' 카테고리의 다른 글
[Kafka] 3.5.x Release note 주요 내용 정리 (0) | 2024.02.18 |
---|---|
[Kafka] 3.4.x Release note 주요 내용 정리 (0) | 2024.02.17 |
[Kafka] 3.2.x Release note 주요 내용 정리 (0) | 2024.02.14 |
[Kafka] 3.1.x Release note 주요 내용 정리 (0) | 2024.02.13 |
[Kafka] 3.0.x Release note 주요 내용 정리 (0) | 2024.02.12 |