AMQ Streams 1.5 on RHEL リリースノート

Red Hat AMQ 7.7

AMQ Streams on Red Hat Enterprise Linux の使用

概要

本リリースノートには、AMQ Streams 1.5 リリースに含まれる新機能、改良された機能、修正、および問題に関する最新情報が含まれています。

第1章 機能

本リリースで追加され、これまでの AMQ Streams リリースにはなかった機能は次のとおりです。

1.1. Kafka 2.5.0 のサポート

AMQ Streams は Apache Kafka バージョン 2.5.0 に対応するようになりました。

AMQ Streams は Kafka 2.5.0 を使用します。サポート対象は、Red Hat によってビルドされた Kafka ディストリビューションのみです。

アップグレードの手順は、AMQ Streams and Kafka upgrades を参照してください。

詳細は、Kafka 2.4.0 および Kafka 2.5.0 のリリースノートを参照してください。

注記

Kafka 2.4.x は、アップグレードの目的のみで AMQ Streams 1.5 でサポートされます。

サポートされるバージョンの詳細は、カスタマーポータルの Red Hat AMQ 7 Component Details Page を参照してください。

1.2. ZooKeeper 3.5.8 のサポート

Kafka 2.5.0 には ZooKeeper バージョン 3.5.8 が必要です。したがって、AMQ Streams 1.5 へのアップグレードに関連する最初のステップは、AMQ Streams と Kafka のアップグレード で説明されているように、ZooKeeper をバージョン 3.5.8 にアップグレードすることです。

詳細は、ZooKeeper 3.5.8 リリースノートを参照してください。ZooKeeper 3.5.7 で導入された 設定形式 の変更に注意してください。

注記

バージョン 3.5.7 より前の ZooKeeper バージョンからアップグレードする場合、そのリリースで導入された設定変更のために、いくつかの追加のアップグレード手順を実行する必要があります。詳細については、RHEL の AMQ Streams 1.4 の リリースノートおよび RHELAMQ Streams 1.4 をアップグレード する手順を参照してください。

1.3. MirrorMaker 2.0

MirrorMaker 2.0 のサポートは、テクノロジープレビューから AMQ Streams の一般提供コンポーネントに移行されます。

MirrorMaker 2.0 は Kafka Connect フレームワークをベースとし、コネクターによってクラスター間のデータ転送が管理されます。

MirrorMaker 2.0 は以下を使用します。

  • ソースクラスターからデータを消費するソースクラスターの設定
  • データをターゲットクラスターに出力するターゲットクラスターの設定。

MirrorMaker 2.0 では、クラスターでデータをレプリケートする全く新しい方法が導入されました。MirrorMaker 2.0 の使用を選択した場合、現在、レガシーサポートがないため、リソースを手作業で新しい形式に変換する必要があります。

AMQ Streams の MirrorMaker 2.0 との使用 を参照してください。

1.4. 変更データキャプチャー統合の Debezium

Red Hat Debezium は分散型の変更データキャプチャープラットフォームです。データベースの行レベルの変更をキャプチャーして、変更イベントレコードを作成し、Kafka トピックにレコードをストリーミングします。Debezium は Apache Kafka に構築されます。AMQ Streams で Debezium をデプロイおよび統合できます。AMQ Streams のデプロイ後に、Kafka Connect で Debezium をコネクター設定としてデプロイします。Debezium は、変更イベントレコードを Red Hat Enterprise Linux の AMQ Streams に渡します。アプリケーションはこれらの 変更イベントストリーム を読み取りでき、変更イベントが発生した順にアクセスできます。

Debezium には、以下を含む複数の用途があります。

  • データレプリケーション
  • キャッシュの更新およびインデックスの検索
  • モノリシックアプリケーションの簡素化
  • データ統合
  • ストリーミングクエリーの有効化

Debezium は、以下の共通データベースのコネクター (Kafka Connect をベースとする) を提供します。

  • MySQL
  • PostgreSQL
  • SQL Server
  • MongoDB

AMQ Streams で Debezium をデプロイするための詳細は、製品ドキュメント を参照してください。

第2章 改良された機能

このリリースで改良された機能は次のとおりです。

2.1. Kafka 2.5.0 で改良された機能

Kafka 2.5.0 に導入された改良機能の概要は Kafka 2.5.0 Release Notes を参照してください。

2.2. OAuth 2.0 認証設定オプションの拡張

新しい設定オプションによって、より多くの承認サーバーとの統合が可能になりました。

OAuth 2.0 認証の適用方法や、承認サーバーのタイプによっては、追加 (任意) の設定を使用できます。

Kafka ブローカーの追加設定オプション

listener.name.client.oauthbearer.sasl.jaas.config=org.apache.kafka.common.security.oauthbearer.OAuthBearerLoginModule required \
  # ...
  oauth.check.issuer=false \ 1
  oauth.fallback.username.claim="CLIENT-ID" \ 2
  oauth.fallback.username.prefix="CLIENT-ACCOUNT" \ 3
  oauth.valid.token.type="bearer" \ 4
  oauth.userinfo.endpoint.uri="https:://AUTH-SERVER-ADDRESS/userinfo" ; 5

1
承認サーバーが iss クレームを提供しない場合は、発行者チェックを行うことができません。このような場合、oauth.check.issuerfalse に設定し、oauth.valid.issuer.uri を指定しないようにします。デフォルトは true です。
2
承認サーバーは、通常ユーザーとクライアントの両方を識別する単一の属性を提供しない場合があります。独自の名前を認証するクライアントによって クライアント ID が提供される場合があります。しかし、更新トークンまたはアクセストークンの取得に、ユーザー名とパスワードを使用して認証されるユーザーは、クライアント ID の他に ユーザー名 を提供する場合があります。プライマリーユーザー ID 属性が使用できない場合は、このフォールバックオプションで、使用するユーザー名クレーム (属性) を指定します。
3
oauth.fallback.username.claim が適用される場合、ユーザー名クレームの値とフォールバックユーザー名クレームの値が競合しないようにする必要もあることがあります。producer というクライアントが存在し、producer という通常ユーザーも存在する場合について考えてみましょう。この 2 つを区別するには、このプロパティーを使用してクライアントのユーザー ID に接頭辞を追加します。
4
(イントロスペクションエンドポイント URI を使用する場合のみ該当): 使用している認証サーバーによっては、イントロスペクションエンドポイントによってトークンタイプ属性が返されるかどうかは分からず、異なる値が含まれることがあります。イントロスペクションエンドポイントからの応答に含まれなければならない有効なトークンタイプ値を指定できます。
5
(イントロスペクションエンドポイント URI を使用する場合のみ該当): イントロスペクションエンドポイントの応答に識別可能な情報が含まれないように、承認サーバーが設定または実装されることがあります。ユーザー ID を取得するには、userinfo エンドポイントの URI をフォールバックとして設定します。oauth.fallback.username.claimoauth.fallback.username.claim、および oauth.fallback.username.prefix 設定が userinfo エンドポイントの応答に適用されます。

Kafka コンポーネントの追加設定オプション

# ...
System.setProperty(ClientConfig.OAUTH_SCOPE, "SCOPE-VALUE") 1

1
(オプション): トークンエンドポイントからトークンを要求するための scope。認証サーバーでは、クライアントによるスコープの指定が必要になることがあります。

Kafka ブローカーの OAuth 2.0 サポートの設定 および OAuth 2.0 を使用するための Kafka Java クライアントの設定 を参照してください。

2.3. Kafka Bridge の CORS (Cross-Origin Resource Sharing)

CORS (Cross-Origin Resource Sharing) より、Kafka Bridge のアクセス制御を有効化および定義できるようになりました。CORS は、複数のオリジンから指定のリソースにブラウザーでアクセスできるようにする HTTP メカニズムです。CORS を設定するには、許可されるリソースオリジンのリストと、それらにアクセスする HTTP メソッドを定義します。リクエストの追加の HTTP ヘッダーには Kafka クラスターへのアクセスが許可されるオリジンが記述 されています。

Kafka Bridge の HTTP 設定

http.enabled=true
http.host=0.0.0.0
http.port=8080
http.cors.enabled=true 1
http.cors.allowedOrigins=https://strimzi.io 2
http.cors.allowedMethods=GET,POST,PUT,DELETE,OPTIONS,PATCH 3

1
CORS を有効にするには true に設定します。
2
許可される CORS オリジンのコンマ区切りリスト。URL または Java 正規表現を使用できます。
3
CORS で許可される HTTP メソッドのコンマ区切りリスト。

Kafka Bridge HTTP の設定 を参照してください。

第3章 テクノロジープレビュー

重要

テクノロジープレビューの機能は、Red Hat の実稼働環境のサービスレベルアグリーメント (SLA) ではサポートされず、機能的に完全ではないことがあるため、Red Hat はテクノロジープレビュー機能を実稼働環境に実装することは推奨しません。テクノロジープレビューの機能は、最新の技術をいち早く提供して、開発段階で機能のテストやフィードバックの収集を可能にするために提供されます。サポート範囲の詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。

3.1. Cruise Control によるクラスターの再分散

注記

これはテクノロジープレビューの機能です。

Cruise Control をインストールし、Kafka クラスターのリバランスに使用できるようになりました。Cruise Control を使用すると、分散された Kafka クラスターを効率的に実行するための時間および労力を削減できます。

カスタマーポータルからダウンロードするために、Cruise Control の zip 形式のディストリビューションを利用できます。Cruise Control をインストールするには、提供される Metrics Reporter を使用するように各 Kafka ブローカーを設定します。その後、最適化ゴールを含む Cruise Control プロパティーを設定し、提供されたスクリプトを使用して Cruise Control を開始します。

Cruise Control サーバーは、Kafka クラスター全体に対して単一のマシンでホストされます。

Cruise Control が実行されている場合、REST API を使用して以下を行うことができます。

  • 複数の最適化ゴールからドライラン最適化プロポーザルの生成
  • 最適化プロポーザルを開始し、Kafka クラスターのリバランスを行います。

異常検出、通知、独自ゴールの作成、トピックレプリケーション係数の変更などの、その他の Cruise Control の機能は現在サポートされていません。

Cruise Control によるクラスターのリバランス を参照してください。

3.2. OAuth 2.0 承認

注記

これはテクノロジープレビューの機能です。

トークンベースの認証に OAuth 2.0 を使用している場合、OAuth 2.0 承認ルールを使用して、クライアントの Kafka ブローカーへのアクセスを制限できるようになりました。

AMQ Streams は、Red Hat Single Sign-On の 承認サービス による OAuth 2.0 トークンベースの承認をサポートします。これにより、セキュリティーポリシーとパーミッションの一元的な管理が可能になります。

Red Hat Single Sign-On で定義されたセキュリティーポリシーおよびパーミッションは、Kafka ブローカーのリソースへのアクセスを付与するために使用されます。ユーザーとクライアントは、Kafka ブローカーで特定のアクションを実行するためのアクセスを許可するポリシーに対して照合されます。

OAuth 2.0 トークンベース承認の使用 を参照してください。

第4章 非推奨の機能

AMQ Streams 1.5 で非推奨になった機能はありません。

第5章 修正された問題

AMQ Streams 1.5 で修正された問題はありません。

第6章 既知の問題

ここでは、AMQ Streams 1.5 の既知の問題について説明します。

課題番号

ENTMQST-2030 - kafka-ack が javax.management.InstanceAlreadyExistsException: kafka.admin.client:type=app-info,id=<client_id>with client.id を報告する

説明

bin/kafka-acls.sh ユーティリティーを --bootstrap-server パラメーターと組み合わせて使用して ACL を追加または削除すると、操作に成功しても警告が生成されます。警告の理由は、2 つ目の AdminClient インスタンスが作成されることです。これは、Kafka の今後のリリースで修正されます。

第7章 サポート対象のインテグレーション製品

AMQ Streams 1.5 は、以下の Red Hat 製品との統合をサポートします。

  • OAuth 2.0 認証および OAuth 2.0 承認用の Red Hat Single Sign-On 7.4 以上 (テクノロジープレビュー)。
  • データベースを監視し、イベントストリームを作成する Red Hat Debezium 1.0 以上

これらの製品によって AMQ Streams デプロイメントに導入可能な機能の詳細は、AMQ Streams 1.5 のドキュメントを参照してください。