翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
RabbitMQ 4.3
Amazon MQ RabbitMQ は、サポートされているすべてのインスタンスサイズで mq.m7g インスタンスタイプで RabbitMQ 4 つのリリースシリーズで 4.3 をサポートするようになりました。 RabbitMQ 4.3 では、クォーラムキューの機能強化、新しい交換タイプが導入され、以前の 4.x リリースで廃止されたいくつかの機能の削除が完了しました。このリリースの詳細については、GitHub ウェブサイトの RabbitMQ 4.3.0 リリースノート
重要
Amazon MQ は、4.2 RabbitMQ から 4.3 RabbitMQ へのアップグレードのみをサポートしています。3.13 から RabbitMQ 4.3 に直接アップグレードすることはできません。ブローカーが 3RabbitMQ.13 を実行している場合は、4.3 RabbitMQ にアップグレードする前に、まず 4.2 にアップグレードする必要があります。
Amazon MQ RabbitMQ での 4.3 の重大な変更
以下のオープンソースの変更は、4.3 RabbitMQ へのアップグレード時にアプリケーションに影響を与える可能性があります。ブローカーをアップグレードする前に、これらの変更を確認してください。
-
一時的な非排他的キューが拒否される: 非永続的キューと非排他的キューの両方を宣言すると、エラーが返されるようになりました。Amazon MQ for RabbitMQ 4.3 では、この機能のサポートが削除されました。RabbitMQ 代わりに、ウェブサイトのキュー TTL
で、耐久性のあるキュー、排他的キュー、または耐久性のあるキューを使用します。 -
グローバル QoS が拒否されました:
basic.qosで を呼び出すと、チャネルエラーが返されるglobal=trueようになりました。Amazon MQ for RabbitMQ 4.3 では、この機能のサポートが削除されました。代わりに、コンシューマーごとのプリフェッチ (global=false) を使用します。この変更の詳細については、 RabbitMQウェブサイトの「グローバル QoS の削除」を参照してください。 -
クラシックキュー v1 ストレージが削除された: でキューを宣言すると、エラーが返される
x-queue-version=1ようになりました。クラシックキュー v2 は、サポートされている唯一のストレージエンジンです。Amazon MQ は 3.12 以降 v2 RabbitMQ を適用しているため、既存のキューは影響を受けません。 -
コンシューマータイムアウトはクラシックキューに適用されなくなりました。クラシックキューはコンシューマータイムアウトを評価しなくなりました。コンシューマーがアプリケーションレベルで停止した場合、 RabbitMQ は自動的にメッセージを再配信しません。
consumer_timeoutこの設定は引き続きクォーラムキューに適用されます。アプリケーションがクラシックキューのコンシューマータイムアウトに依存している場合は、クォーラムキューへの移行またはアプリケーションレベルのハートビートチェックの実装を検討してください。この変更の詳細については、GitHub ウェブサイトの RabbitMQ 4.3.0 リリースノートを参照してください。
Amazon MQ RabbitMQ の 4.3 の新機能と機能強化
-
クォーラムキューの厳密な優先度: クォーラムキューは、
x-max-priorityキュー引数で有効になっている最大 32 レベル (0~31) の厳密な優先度順序をサポートするようになりました。優先度の高いメッセージは、優先度の低いメッセージの前に常に配信されます。これにより、4.2 で導入された 2 RabbitMQ レベルの比率ベースの配信が置き換えられます。クォーラムキューの優先順位の詳細については、 RabbitMQウェブサイトの「クォーラムキューの優先順位」を参照してください。 -
クォーラムキューの遅延再試行: クォーラムキューは、設定可能なバックオフの増加による遅延再試行をサポートします。再試行動作は、キュー引数またはポリシーキー (
delayed-retry-type、delayed-retry-min、) を使用して設定できますdelayed-retry-max。クォーラムキューの詳細については、 RabbitMQウェブサイトの「クォーラムキュー」を参照してください。 -
クォーラムキューの詳細なコンシューマータイムアウト: コンシューマータイムアウトは、コンシューマーごと、キューごと、またはポリシーを使用して設定できるようになりました。これにより、以前のブローカー全体の
consumer_timeout設定よりも細かく制御できます。 -
ポリシーを使用して配信制限を変更可能: キューの再宣言を必要とせずに、ポリシーを使用してクォーラムキュー配信制限を更新できるようになりました。
-
一貫したハッシュ交換 (x-modulus-hash):
x-modulus-hash交換タイプがRabbitMQコアに組み込まれました。この交換タイプは、ルーティングキーの一貫したハッシュを使用してバインドされたキューにメッセージを分散し、クライアント側のロジックなしでワークロードシャーディングを有効にします。一貫したハッシュ交換の詳細については、 RabbitMQウェブサイトの「一貫したハッシュ交換」を参照してください。
重要
4.2 RabbitMQ からアップグレードする場合は、次のメッセージ配信の変更に注意してください。優先度が以前に高 (≥5) または正常 (0~4) にマッピングされた既存のメッセージは、厳密な順序で配信されるようになりました。その結果、優先度の低いメッセージは不足し、優先度の高いメッセージはキューに残ります。 RabbitMQ 4.2 では、2:1 の比率ベースの配信が使用され、通常の優先度メッセージの進行が保証されました。