Release Notes for AMQ Streams 2.2 on RHEL
Highlights of what's new and what's changed with this release of AMQ Streams on Red Hat Enterprise Linux
Abstract
Making open source more inclusive
Red Hat is committed to replacing problematic language in our code, documentation, and web properties. We are beginning with these four terms: master, slave, blacklist, and whitelist. Because of the enormity of this endeavor, these changes will be implemented gradually over several upcoming releases. For more details, see our CTO Chris Wright’s message.
Chapter 1. Features
AMQ Streams 2.2 and subsequent patch releases introduce the features described in this section.
AMQ Streams 2.2 on RHEL is based on Kafka 3.2.3.
To view all the enhancements and bugs that are resolved in this release, see the AMQ Streams Jira project.
1.1. AMQ Streams 2.2.x (Long Term Support)
AMQ Streams 2.2.x is the Long Term Support (LTS) offering for AMQ Streams.
The latest patch release is AMQ Streams 2.2.2. The AMQ Streams product images have changed to version 2.2.2. The supported Kafka version remains at 3.2.3.
For information on the LTS terms and dates, see the AMQ Streams LTS Support Policy.
1.2. Kafka 3.2.3 support
AMQ Streams now supports Apache Kafka version 3.2.3.
AMQ Streams uses Kafka 3.2.3. Only Kafka distributions built by Red Hat are supported.
For upgrade instructions, see AMQ Streams and Kafka upgrades.
Refer to the Kafka 3.1.0, Kafka 3.2.0, Kafka 3.2.1, and Kafka 3.2.3 Release Notes for additional information.
Kafka 3.1.x is supported only for the purpose of upgrading to AMQ Streams 2.2.
For more information on supported versions, see the AMQ Streams Component Details.
Kafka 3.2.3 uses ZooKeeper version 3.6.3, which is the same version as Kafka 3.1.0. We recommend that you perform a rolling update to use the new binaries.
Kafka 3.2.3 provides access to self-managed mode, where Kafka runs without ZooKeeper by utilizing the Raft protocol. Note that self-managed mode is not supported in AMQ Streams.
1.3. Support for IBM Z and LinuxONE architecture
AMQ Streams 2.2 is enabled to run on IBM Z and LinuxONE s390x architecture.
IBM Z and LinuxONE is tested for AMQ Streams running with Kafka and Open JDK 11, on Red Hat Enterprise Linux 8 and later.
1.3.1. Requirements for IBM Z and LinuxONE
- Red Hat Enterprise Linux 8 and later
- Open JDK 11
1.3.2. Unsupported on IBM Z and LinuxONE
- Red Hat Enterprise Linux 7
- Open JDK 8, Oracle JDK 8 & 11, IBM JDK 8
1.4. Support for IBM Power architecture
AMQ Streams 2.2 is enabled to run on IBM Power ppc64le architecture.
IBM Power is tested for AMQ Streams running with Kafka and Open JDK 11, on Red Hat Enterprise Linux 8 and later.
1.4.1. Requirements for IBM Power
- Red Hat Enterprise Linux 8 and later
- Open JDK 11
1.4.2. Unsupported on IBM Power
- Red Hat Enterprise Linux 7
- Open JDK 8, Oracle JDK 8 & 11, IBM JDK 8
1.5. KRaft mode (development preview)
Apache Kafka is in the process of phasing out the need for ZooKeeper. You can now try deploying a Kafka cluster in KRaft (Kafka Raft metadata) mode without ZooKeeper.
This feature should be treated as a development preview.
This mode is experimental, intended only for development and testing, and must not be enabled for a production environment.
Currently, the KRaft mode in AMQ Streams has the following major limitations:
- Moving from Kafka clusters with ZooKeeper to KRaft clusters or the other way around is not supported.
- Upgrades and downgrades of Apache Kafka versions are not supported.
- SCRAM-SHA-512 authentication is not supported.
- JBOD storage with multiple disks is not supported.
- Many configuration options are still in development.
1.6. General Availability for Cruise Control
Cruise Control moves from Technology Preview to General Availability (GA). You can install Cruise Control and use it to rebalance your Kafka cluster using optimization goals — defined constraints on CPU, disk, network load, and more. In a balanced Kafka cluster, the workload is more evenly distributed across the broker pods.
Cruise Control helps to reduce the time and effort involved in running an efficient and balanced Kafka cluster.
A zipped distribution of Cruise Control is available for download from the AMQ Streams software downloads page. To install Cruise Control, you configure each Kafka broker to use the provided Metrics Reporter. Then, you set Cruise Control properties, including optimization goals, and start Cruise Control using the provided script.
The Cruise Control server is hosted on a single machine for the whole Kafka cluster.
When Cruise Control is running, you can use the REST API to:
- Generate dry run optimization proposals from multiple optimization goals
- Initiate an optimization proposal to rebalance the Kafka cluster
Other Cruise Control features are not currently supported, including notifications, write-your-own goals, and changing the topic replication factor.
Chapter 2. Enhancements
AMQ Streams 2.2 adds a number of enhancements.
2.1. Kafka 3.2.3 enhancements
For an overview of the enhancements introduced with Kafka 3.2.0, 3.2.1, and 3.2.3, refer to the Kafka 3.2.0 Release Notes, Kafka 3.2.1 Release Notes, and Kafka 3.2.3 Release Notes.
Chapter 3. Technology Previews
Technology Preview features are not supported with Red Hat production service-level agreements (SLAs) and might not be functionally complete; therefore, Red Hat does not recommend implementing any Technology Preview features in production environments. This Technology Preview feature provides early access to upcoming product innovations, enabling you to test functionality and provide feedback during the development process. For more information about support scope, see Technology Preview Features Support Scope.
3.1. Kafka Static Quota plugin configuration
Use the Kafka Static Quota plugin to set throughput and storage limits on brokers in your Kafka cluster. You can set a byte-rate threshold and storage quotas to put limits on the clients interacting with your brokers.
Example Kafka Static Quota plugin configuration
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
See Setting limits on brokers using the Kafka Static Quota plugin.
Chapter 4. Deprecated features
The features deprecated in this release, and that were supported in previous releases of AMQ Streams, are outlined below.
4.1. OpenTracing
Support for OpenTracing is deprecated.
The Jaeger clients are now retired and the OpenTracing project archived. As such, we cannot guarantee their support for future Kafka versions. We are introducing a new tracing implementation based on the OpenTelemetry project.
4.2. Java 8
Support for Java 8 was deprecated in Kafka 3.0.0 and AMQ Streams 2.0. Java 8 will be unsupported for all AMQ Streams components, including clients, in the future.
AMQ Streams supports Java 11. Use Java 11 when developing new applications. Plan to migrate any applications that currently use Java 8 to Java 11.
4.3. Kafka MirrorMaker 1
Kafka MirrorMaker replicates data between two or more active Kafka clusters, within or across data centers. Kafka MirrorMaker 1 is deprecated for Kafka 3.2.3 and will be removed in Kafka 4.0.0. MirrorMaker 2.0 will be the only version available. MirrorMaker 2.0 is based on the Kafka Connect framework, connectors managing the transfer of data between clusters.
As a consequence, the AMQ Streams KafkaMirrorMaker
custom resource which is used to deploy Kafka MirrorMaker 1 has been deprecated. The KafkaMirrorMaker
resource will be removed from AMQ Streams when Kafka 4.0.0 is adopted.
If you are using MirrorMaker 1 (referred to as just MirrorMaker in the AMQ Streams documentation), use the KafkaMirrorMaker2
custom resource with the IdentityReplicationPolicy
. MirrorMaker 2.0 renames topics replicated to a target cluster. IdentityReplicationPolicy
configuration overrides the automatic renaming. Use it to produce the same active/passive unidirectional replication as MirrorMaker 1.
4.4. Identity replication policy
Identity replication policy is used with MirrorMaker 2 to override the automatic renaming of remote topics. Instead of prepending the name with the name of the source cluster, the topic retains its original name. This optional setting is useful for active/passive backups and data migration.
The AMQ Streams Identity Replication Policy class (io.strimzi.kafka.connect.mirror.IdentityReplicationPolicy
) is now deprecated and will be removed in the future. You can update to use Kafka’s own Identity Replication Policy (class org.apache.kafka.connect.mirror.IdentityReplicationPolicy
).
Chapter 5. Fixed issues
The following sections list the issues fixed in AMQ Streams 2.2.x. Red Hat recommends that you upgrade to the latest patch release.
For details of the issues fixed in Kafka 3.2.0, 3.2.1, and 3.2.3, refer to the Kafka 3.2.0 Release Notes, Kafka 3.2.1 Release Notes, and Kafka 3.2.3 Release Notes.
5.1. Fixed issues for AMQ Streams 2.2.2
The AMQ Streams 2.2.2 patch release (Long Term Support) is now available.
HTTP/2 DoS vulnerability (CVE-2023-44487)
The release addresses CVE-2023-44487, a critical Denial of Service (DoS) vulnerability in the HTTP/2 protocol. The vulnerability stems from mishandling multiplexed streams, allowing a malicious client to repeatedly request new streams and promptly cancel them using an RST_STREAM
frame. By doing so, the attacker forces the server to expend resources setting up and tearing down streams without reaching the server-side limit for active streams per connection. For more information on this vulnerability, see the CVE-2023-44487 page for a description.
For additional details about the issues resolved in AMQ Streams 2.2.2, see AMQ Streams 2.2.x Resolved Issues.
5.2. Fixed issues for AMQ Streams 2.2.1
For additional details about the issues resolved in AMQ Streams 2.2.1, see AMQ Streams 2.2.x Resolved Issues.
5.3. Fixed issues for AMQ Streams 2.2.0
Table 5.1. Fixed issues
Issue Number | Description |
---|---|
[KAFKA] MirrorMaker 2.0 negative lag | |
[KAFKA] Unauthenticated clients may cause OutOfMemoryError on brokers |
Table 5.2. Fixed common vulnerabilities and exposures (CVEs)
Issue Number | Description |
---|---|
CVE-2020-36518 jackson-databind: denial of service via a large depth of nested objects | |
CVE-2022-24823 netty: world readable temporary file containing sensitive data | |
CVE-2022-25647 com.google.code.gson-gson: Deserialization of Untrusted Data in com.google.code.gson-gson |
Chapter 6. Known issues
There are no known issues for AMQ Streams 2.2 on RHEL.
Chapter 7. Supported integration with Red Hat products
AMQ Streams 2.2 supports integration with the following Red Hat products.
- Red Hat Single Sign-On
- Provides OAuth 2.0 authentication and OAuth 2.0 authorization.
For information on the functionality these products can introduce to your AMQ Streams deployment, refer to the product documentation.
Additional resources
Chapter 8. Important links
Revised on 2023-10-19 10:41:57 UTC