すべてのプロダクト
Search
ドキュメントセンター

ApsaraMQ for RabbitMQ:排他キュー

最終更新日:Jan 14, 2025

キューを自分だけが表示できるようにするには、ApsaraMQ for RabbitMQ が提供する排他キュー機能を使用して、指定したキューを排他として宣言できます。

排他キューとは

排他キューには、次の特性があります。

  • 排他キューは、キューを排他として宣言した最初の接続のチャネルのみが表示できます。

    1 つの接続でキューが排他として宣言された後、他の接続で同じ名前の排他キューを宣言することはできず、他の接続のチャネルは排他キューにアクセスできません。

  • キューの接続が閉じられると、排他キューは自動的に削除されます。

    クライアントで durable パラメーターを true に設定して排他キューを永続キューとして宣言した場合でも、キューの接続が閉じられると、キューは削除され、キュー内のデータはクリアされます。

一般的なシナリオ

排他キューは、プロデューサーとコンシューマーが同じプロセスにあり、データ損失の影響を受けにくいシナリオに適しています。

リスク

次のいずれかのシナリオでキューの接続が誤って閉じられた場合、排他キューは削除され、キュー内のデータはクリアされます。

  • クライアントによる Close() メソッドの呼び出し

  • ブローカーの更新または異常な再起動

  • 接続ハートビートのタイムアウト

  • スロットリングなどのその他のエラー

排他キューを使用する場合は注意してください。

排他キューを宣言する方法

クライアントプログラムで channel.queueDeclare メソッドを使用し、exclusive パラメーターを true に設定することで、排他キューを宣言できます。

次のサンプルコードは、Java で排他キューを宣言する方法の例を示しています。

/**
* queue: キュー名。
* durable: キューを永続化するかどうかを指定します。
* exclusive: キューが排他的かどうかを指定します。
* autoDelete: キューを自動的に削除するかどうかを指定します。
* arguments: その他のパラメーター。
*/
channel.queueDeclare("queueName", true, true, false, null);