View a markdown version of this page

RabbitMQ 4.2 - Amazon MQ

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

RabbitMQ 4.2

Amazon MQ はRabbitMQ、4 シリーズの最初のリリースとして 4.2 RabbitMQ をサポートしています。 RabbitMQ 4.2 では、コアプロトコルとして AMQP 1.0、デフォルトのメタデータストアとして Khepri、クォーラムキューメッセージの優先順位、mTLS および HTTP 認証を含む新しい認証プラグインが導入されています。このリリースの詳細については、GitHub ウェブサイトの RabbitMQ 4.0.0 リリースノートを参照してください。

Amazon MQ RabbitMQ の 4.2 の新機能と機能強化

  • コアプロトコルとしての AMQP 1.0: 詳細については、「プロトコル」を参照してください。

  • ローカルシャベル: Shovels は、AMQP 0-9-1 および AMQP 1.0 に加えて、「local」と呼ばれる新しいプロトコルをサポートするようになりました。ローカルシャベルは内部的に AMQP 1.0 に基づいていますが、個別の TCP 接続を使用する代わりに、クラスターノードと内部 APIs 間のクラスター内接続を使用してメッセージを発行および消費します。これは、同じクラスター内での消費と公開にのみ使用でき、AMQP 0-9-1 および AMQP 1.0 よりも少ないリソースを使用しながら、より高いスループットを実現できます。

  • クォーラムキューはメッセージの優先順位をサポート: クォーラムキューメッセージの優先順位は常にアクティブであり、ポリシーは必要ありません。クォーラムキューが優先順位が設定されたメッセージを受信すると、優先順位が有効になります。クォーラムキューは、高と通常の 2 つの内部優先度レベルのみをサポートします。

    RabbitMQ は、優先度のないメッセージと、優先度が 0~4 のメッセージを通常の にマッピングします。優先度が 4 を超えるメッセージは高にマッピングされます。優先度の高いメッセージは、通常の優先度のメッセージよりも 2:1 の比率で優先されます。優先度の高いメッセージが 2 つあるたびに、キューは 1 つの通常の優先度メッセージを配信します。その結果、クォーラムキューは、通常の優先度メッセージの進行を保証する、厳格ではない公平配分の優先度処理モデルを実装します。

  • Khepri: Khepri は 4 RabbitMQ つのブローカーのデフォルトのメタデータストアとして使用されます

  • 相互 TLS (mTLS): Amazon MQ はRabbitMQブローカーの相互 TLS (mTLS) をサポートしているため、クライアントは証明書を使用して認証できます。詳細については、「mTLS 設定」を参照してください。

  • SSL 証明書認証プラグイン: SSL 認証プラグインは mTLS 接続のクライアント証明書を使用してユーザーを認証し、ユーザー名とパスワード認証情報の代わりに X.509 クライアント証明書を使用した認証を許可します。詳細については、「SSL 証明書認証」を参照してください。

  • HTTP 認証プラグイン: HTTP 認証バックエンドプラグインを使用すると、認証と認可を外部 HTTP サービスに委任できます。詳細については、「HTTP 認証と認可」を参照してください。

  • JMS サポート: ブローカーは JMS トピック交換プラグインを有効にして JMS ワークロードをサポートするようになり、JMS アプリケーションが RabbitMQ JMS クライアントを使用して接続できるようになりました。

  • 設定可能なストレージサイズ: CLUSTER_MULTI_AZ モードでデプロイされた RabbitMQ 4.x ブローカーは、設定可能な EBS ストレージサイズをサポートします。詳細については、mq.m7g インスタンスタイプを参照してください。

Amazon MQ RabbitMQ の 4.2 の廃止された機能

  • クラシックキューのミラーリング: クラシックキューは、クライアントライブラリとアプリケーションに重大な変更を加えることなく引き続きサポートされますが、レプリケートされていないキュータイプになりました。クライアントは任意のノードに接続して、レプリケートされていないクラシックキューにパブリッシュおよび消費できます。クォーラムキューは、レプリケーションとデータの安全性のために推奨されます。

  • グローバル QoS の削除: グローバル QoS の代わりに、コンシューマーごとの QoS (非グローバル) を設定することをお勧めします。この場合、チャネル全体に単一の共有プリフェッチが使用されます。

  • 一時的な非排他的キューのサポート: 一時的なキューは、宣言されているノードの稼働時間に有効期間がリンクされているキューです。単一のインスタンスブローカーでは、ノードが再起動されると削除されます。クラスターデプロイでは、ホストされているノードが再起動されると削除されます。キュー TTL は、アイドル状態の未使用キューをしばらく非アクティブ状態になった後に自動削除するために使用することをお勧めします。排他的キューは引き続きサポートされ、キューへのすべての接続が削除されると削除されます。

Amazon MQ RabbitMQ での 4.2 の大幅な変更

以下のオープンソースの変更は、4.2 RabbitMQ へのアップグレード時にアプリケーションに影響を与える可能性があります。ブローカーをアップグレードする前に、これらの変更を確認してください。

  • デフォルトのキュータイプ: 4 RabbitMQ ブローカーのデフォルトのキュータイプはクォーラムに設定されています。キューの作成時にキュータイプの引数を指定しない場合、クォーラムキューが作成されます。

  • クォーラムキューのデフォルトの再配信制限は 20 に設定されています。20 回以上再配信されたメッセージはデッドレターまたは削除 (削除) されます。メッセージあたり 20 回の配信がキューの一般的なシナリオである場合は、データ損失を避けるために、このようなキューに対してデッドレターターゲットまたは上限を設定する必要があります。これを行うには、ポリシーを使用することをお勧めします。

  • amqplib: 0.10.7 より前のノード JS クライアント amqplib バージョン、または frame_max < 8192 を使用する AMQP クライアントライブラリは に接続できません RabbitMQ

  • デフォルトのリソース制限: Amazon MQ for RabbitMQでは、接続、チャネル、チャネルあたりのコンシューマー、キュー、vhost、シャベル、交換、最大メッセージサイズにデフォルトのリソース使用制限が導入されています。これらはブローカーの可用性を保護するためのガードレールとして機能し、特定の要件に合わせて設定を使用してカスタマイズできます。