RHEL의 AMQ Streams 2.2 릴리스 정보

Red Hat AMQ Streams 2.2

Red Hat Enterprise Linux에서 AMQ Streams의 새로운 기능 및 주요 변경 사항

초록

릴리스 노트에는 AMQ Streams 2.2 릴리스에 도입된 새로운 기능, 개선 사항 및 수정 사항이 요약되어 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 용어를 교체하기 위해 최선을 다하고 있습니다. 먼저 마스터(master), 슬레이브(slave), 블랙리스트(blacklist), 화이트리스트(whitelist) 등 네 가지 용어를 교체하고 있습니다. 이러한 변경 작업은 작업 범위가 크므로 향후 여러 릴리스에 걸쳐 점차 구현할 예정입니다. 자세한 내용은 CTO Chris Wright의 메시지를 참조하십시오.

1장. 기능

AMQ Streams 2.2 및 후속 패치 릴리스에서는 이 섹션에 설명된 기능을 소개합니다.

RHEL의 AMQ Streams 2.2는 Kafka 3.2.3을 기반으로 합니다.

참고

이 릴리스에서 해결된 모든 개선 사항 및 버그를 보려면 AMQ Streams Jira 프로젝트를 참조하십시오.

1.1. AMQ Streams 2.2.x (Long Term Support)

AMQ Streams 2.2.x는 AMQ Streams에 대한 LTSS(Long Term Support)입니다.

최신 패치 릴리스는 AMQ Streams 2.2.2입니다. AMQ Streams 제품 이미지가 버전 2.2.2로 변경되었습니다. 지원되는 Kafka 버전은 3.2.3으로 유지됩니다.

LTS 이용 약관에 대한 자세한 내용은 AMQ Streams LTS 지원 정책을 참조하십시오.

1.2. Kafka 3.2.3 지원

AMQ Streams는 이제 Apache Kafka 버전 3.2.3을 지원합니다.

AMQ Streams는 Kafka 3.2.3을 사용합니다. Red Hat에서 빌드한 Kafka 배포판만 지원됩니다.

업그레이드 지침은 AMQ Streams 및 Kafka 업그레이드를 참조하십시오.

자세한 내용은 Kafka 3.1.0,Kafka 3.2.0,Kafka 3.2.1Kafka 3.2.3 릴리스 노트를 참조하십시오.

참고

Kafka 3.1.x는 AMQ Streams 2.2로 업그레이드할 때만 지원됩니다.

지원되는 버전에 대한 자세한 내용은 AMQ Streams Component Details 를 참조하십시오.

Kafka 3.2.3에서는 Kafka 3.1.0과 동일한 버전인 ZooKeeper 버전 3.6.3을 사용합니다. 새 바이너리를 사용하려면 롤링 업데이트를 수행하는 것이 좋습니다.

주의

Kafka 3.2.3은 Raft 프로토콜을 사용하여 Kafka가 ZooKeeper없이 실행되는 자체 관리 모드에 대한 액세스를 제공합니다. AMQ Streams에서는 자체 관리 모드가 지원되지 않습니다.

1.3. IBM Z 및 LinuxONE 아키텍처 지원

AMQ Streams 2.2가 IBM Z 및 LinuxONE s390x 아키텍처에서 실행되도록 사용할 수 있습니다.

IBM Z 및 LinuxONE은 Red Hat Enterprise Linux 8 이상에서 Kafka 및 Open JDK 11에서 실행되는 AMQ Streams에 대해 테스트되었습니다.

1.3.1. IBM Z 및 LinuxONE 요구사항

  • Red Hat Enterprise Linux 8 이상
  • JDK 11을 엽니 다

1.3.2. IBM Z 및 LinuxONE에서 지원되지 않음

  • Red Hat Enterprise Linux 7
  • JDK 8, Oracle JDK 8 & 11, IBM JDK 8을 엽니 다

1.4. IBM Power 아키텍처 지원

AMQ Streams 2.2가 IBM Power ppc64le 아키텍처에서 실행되도록 사용할 수 있습니다.

IBM Power는 Red Hat Enterprise Linux 8 이상에서 Kafka 및 Open JDK 11에서 실행되는 AMQ Streams에 대해 테스트되었습니다.

1.4.1. IBM Power 요구사항

  • Red Hat Enterprise Linux 8 이상
  • JDK 11을 엽니 다

1.4.2. IBM Power에서 지원되지 않음

  • Red Hat Enterprise Linux 7
  • JDK 8, Oracle JDK 8 & 11, IBM JDK 8을 엽니 다

1.5. Koctavia 모드 (개발 프리뷰)

Apache Kafka는 ZooKeeper의 필요성을 제거하는 중입니다. 이제 ZooKeeper 없이 KRaft(Kafka Raft metadata) 모드에서 Kafka 클러스터를 배포할 수 있습니다.

이 기능은 개발 프리뷰로 처리해야 합니다.

경고

이 모드는 실험적인 모드이며 개발 및 테스트용으로 사용되며 프로덕션 환경에 사용하도록 설정되어서는 안 됩니다.

현재 AMQ Streams의 KRaft 모드에는 다음과 같은 주요 제한 사항이 있습니다.

  • ZooKeeper가 있는 Kafka 클러스터에서 KRaft 클러스터로 이동하거나 다른 방법으로는 지원되지 않습니다.
  • Apache Kafka 버전의 업그레이드 및 다운그레이드는 지원되지 않습니다.
  • SCRAM-SHA-512 인증은 지원되지 않습니다.
  • 여러 디스크가 있는 JBOD 스토리지는 지원되지 않습니다.
  • 많은 설정 옵션이 여전히 개발 중입니다.

KRaft 모드에서 Kafka 실행을 참조하십시오.

1.6. Cruise Control의 일반 가용성

Cruise Control은 기술 프리뷰에서 GA(General Availability)로 이동합니다. Cruise Control 을 설치하고 이를 사용하여 CPU, 디스크, 네트워크 로드 등에 대한 최적화 목표를 통해 Kafka 클러스터를 재조정할 수 있습니다. 균형 있는 Kafka 클러스터에서 워크로드는 브로커 Pod에 더 균등하게 분산됩니다.

Cruise Control은 효율적이고 균형 잡힌 Kafka 클러스터 실행과 관련된 시간과 노력을 줄이는 데 도움이 됩니다.

AMQ Streams 소프트웨어 다운로드 페이지에서 정리된 Cruise Control을 다운로드할 수 있습니다. Cruise Control을 설치하려면 제공된 Metrics Reporter를 사용하도록 각 Kafka 브로커를 구성합니다. 그런 다음 최적화 목표를 포함한 Cruise Control 속성을 설정하고 제공된 스크립트를 사용하여 Cruise Control을 시작합니다.

Cruise Control 서버는 전체 Kafka 클러스터의 단일 시스템에서 호스팅됩니다.

Cruise Control이 실행 중이면 REST API를 사용하여 다음을 수행할 수 있습니다.

  • 여러 최적화 목표에서 예행 된 실행 최적화 제안 생성
  • Kafka 클러스터를 재조정하기 위한 최적화 제안 시작

다른 Cruise Control 기능은 현재 알림, write-your-own 목표, 주제 복제 요소 변경을 포함하여 지원되지 않습니다.

클러스터 재조정은 Cruise Control 에서 참조하십시오.

2장. 기능 개선

AMQ Streams 2.2에는 여러 개선 사항이 추가되었습니다.

2.1. Kafka 3.2.3 개선 사항

Kafka 3.2.0, 3.2.1, 3.2.3에서 도입된 개선 사항에 대한 개요는 Kafka 3.2.0 릴리스 노트,Kafka 3.2.1 릴리스 노트Kafka 3.2.3 릴리스 노트 를 참조하십시오.

3장. 기술 프리뷰

중요

기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있으므로 프로덕션 환경에서 기술 프리뷰 기능을 구현하는 것을 권장하지 않습니다. 이 기술 프리뷰 기능을 사용하면 향후 제품 혁신에 빠르게 액세스할 수 있으므로 개발 과정에서 기능을 테스트하고 피드백을 제공할 수 있습니다. 지원 범위에 대한 자세한 내용은 기술 프리뷰 기능 지원 범위를 참조하십시오.

3.1. Kafka 정적 할당량 플러그인 구성

Kafka 정적 할당량 플러그인을 사용하여 Kafka 클러스터의 브로커에 대한 처리량 및 스토리지 제한을 설정합니다. 브로커와 상호 작용하는 클라이언트에 제한을 두도록 바이트 비율 임계값 및 스토리지 할당량을 설정할 수 있습니다.

Kafka 정적 할당량 플러그인 구성의 예

client.quota.callback.class= io.strimzi.kafka.quotas.StaticQuotaCallback
client.quota.callback.static.produce= 1000000
client.quota.callback.static.fetch= 1000000
client.quota.callback.static.storage.soft= 400000000000
client.quota.callback.static.storage.hard= 500000000000
client.quota.callback.static.storage.check-interval= 5

Kafka 정적 할당량 플러그인을 사용하여 브로커에 대한 제한 설정을 참조하십시오.

4장. 더 이상 사용되지 않는 기능

이 릴리스에서 더 이상 사용되지 않는 기능은 아래에 설명되어 있으며 이전 AMQ Streams 릴리스에서 지원되는 기능은 다음과 같습니다.

4.1. OpenTracing

OpenTracing에 대한 지원은 더 이상 지원되지 않습니다.

이제 Jaeger 클라이언트가 사용 중지되고 OpenTracing 프로젝트가 아카이브됩니다. 따라서 향후 Kafka 버전에 대한 지원을 보장할 수 없습니다. OpenTelemetry 프로젝트를 기반으로 새로운 추적 구현이 도입되었습니다.

4.2. Java 8

Java 8에 대한 지원은 Kafka 3.0.0 및 AMQ Streams 2.0에서 더 이상 사용되지 않습니다. Java 8은 향후 클라이언트를 포함한 모든 AMQ Streams 구성 요소에 대해 지원되지 않습니다.

AMQ Streams는 Java 11을 지원합니다. 새 애플리케이션을 개발할 때 Java 11을 사용합니다. 현재 Java 8을 사용하는 애플리케이션을 Java 11으로 마이그레이션할 계획입니다.

4.3. Kafka MirrorMaker 1

Kafka MirrorMaker는 데이터 센터 내 또는 여러 데이터 센터 간에 두 개 이상의 활성 Kafka 클러스터 간에 데이터를 복제합니다. Kafka MirrorMaker 1은 Kafka 3.2.3에서 더 이상 사용되지 않으며 Kafka 4.0.0에서 제거됩니다. MirrorMaker 2.0은 사용 가능한 유일한 버전입니다. MirrorMaker 2.0은 클러스터 간 데이터 전송을 관리하는 Kafka Connect 프레임워크를 기반으로 합니다.

그 결과 Kafka MirrorMaker 1을 배포하는 데 사용되는 AMQ Streams KafkaMirrorMaker 사용자 정의 리소스가 더 이상 사용되지 않습니다. Kafka 4.0.0이 채택되면 KafkaMirrorMaker 리소스가 AMQ Streams에서 제거됩니다.

MirrorMaker 1을 AMQ Streams 설명서에서 MirrorMaker 와 마찬가지로 사용하는 경우 IdentityReplicationPolicy 와 함께 KafkaMirrorMaker2 사용자 정의 리소스를 사용합니다. MirrorMaker 2.0 대상 클러스터에 복제된 항목의 이름을 바꿉니다. IdentityReplicationPolicy 구성이 자동 이름 변경을 덮어씁니다. 이를 사용하여 MirrorMaker 1과 동일한 활성/패시 방향 복제를 생성합니다.

Kafka MirrorMaker 2.0 클러스터 구성을 참조하십시오.

4.4. ID 복제 정책

ID 복제 정책은 MirrorMaker 2와 함께 사용하여 원격 항목의 자동 이름 이름을 덮어씁니다. 소스 클러스터 이름 앞에 이름 앞에 추가하지 않고 주제에서 원래 이름을 유지합니다. 이 선택적 설정은 활성/수동 백업 및 데이터 마이그레이션에 유용합니다.

AMQ Streams Identity Replication Policy 클래스(io.strimzi.kafka.connect.mirror.IdentityReplicationPolicy)는 더 이상 사용되지 않으며 향후 제거될 예정입니다. Kafka의 자체 ID 복제 정책(class org.apache.kafka.connect.mirror.IdentityReplicationPolicy)을 사용하도록 업데이트할 수 있습니다.

Kafka MirrorMaker 2.0 클러스터 구성을 참조하십시오.

5장. 해결된 문제

다음 섹션에서는 AMQ Streams 2.2.x에서 수정된 문제를 나열합니다. Red Hat은 최신 패치 릴리스로 업그레이드할 것을 권장합니다.

Kafka 3.2.0, 3.2.1, 3.2.3에서 수정된 문제에 대한 자세한 내용은 Kafka 3.2.0 릴리스 노트,Kafka 3.2.1 릴리스 노트Kafka 3.2.3 릴리스 노트 를 참조하십시오.

5.1. AMQ Streams 2.2.2의 문제 해결

AMQ Streams 2.2.2 패치 릴리스 (Long Term Support)를 사용할 수 있습니다.

HTTP/2 DoS 취약점 (CVE-2023-44487)

이 릴리스에서는 HTTP/2 프로토콜의 중요한 DoS(서비스 거부) 취약점인 CVE-2023-44487을 해결합니다. 이 취약점은 멀티플렉싱된 스트림을 잘못 처리하지 않아 악의적인 클라이언트가 새 스트림을 반복적으로 요청하고 RST_STREAM 프레임을 사용하여 즉시 취소할 수 있습니다. 이렇게 하면 공격자는 연결당 활성 스트림에 대한 서버 측 제한에 도달하지 않고도 서버에서 스트림을 설정 및 종료하도록 강제 적용합니다. 이 취약점에 대한 자세한 내용은 CVE-2023-44487 페이지를 참조하십시오.

AMQ Streams 2.2.2에서 해결된 문제에 대한 자세한 내용은 AMQ Streams 2.2.x 해결 문제를 참조하십시오.

5.2. AMQ Streams 2.2.1의 수정된 문제

AMQ Streams 2.2.1에서 해결된 문제에 대한 자세한 내용은 AMQ Streams 2.2.x 해결 문제를 참조하십시오.

5.3. AMQ Streams 2.2.0 관련 문제 해결

표 5.1. 해결된 문제

문제 번호설명

ENTMQST-3757

[KAFKA] MirrorMaker 2.0 부정적인 지연

ENTMQST-4264

[KAFKA] 인증되지 않은 클라이언트가 브로커에서 OutOfMemoryError를 유발할 수 있습니다.

표 5.2. CVE(Common vulnerabilities and exposures) 수정

문제 번호설명

ENTMQST-3917

CVE-2020-36518 jackson-databind: 중첩 객체의 대규모 깊이를 통한 서비스 거부

ENTMQST-4049

CVE-2022-24823 netty: 중요한 데이터를 포함하는 세계에서 읽을 수 있는 임시 파일

ENTMQST-4050

CVE-2022-25647 com.google.code.gson-gson: 신뢰할 수 없는 데이터의 설명 com.google.code.gson-gson

6장. 확인된 문제

RHEL에서 AMQ Streams 2.2에 대한 알려진 문제가 없습니다.

7장. Red Hat 제품과의 통합 지원

AMQ Streams 2.2는 다음 Red Hat 제품과의 통합을 지원합니다.

Red Hat Single Sign-On
OAuth 2.0 인증 및 OAuth 2.0 권한 부여를 제공합니다.

이러한 제품에서 AMQ Streams 배포에 도입할 수 있는 기능에 대한 자세한 내용은 제품 설명서를 참조하십시오.

법적 공지

Copyright © 2023 Red Hat, Inc.
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.