0

新しいプロジェクトでRabbitMQを採用しています。システム障害と高い要求に対応するには、クラスター化された環境が必要です。問題: クライアントが接続するたびに、キューを排他的に作成する必要があります。クライアントが切断された場合は、キューを削除してリソースを解放したいと考えています。さらに、トピックへのキューのバインドは、資格情報ごとのアクセス許可で制限する必要があります。

結論として、排他的なキュー (接続が閉じると自動削除される) のみを作成するように接続を制限し、ユーザー アカウントごとに構成された、許可するトピックのリストにそのようなキューのみをバインドします。

キューの作成を排他的に制限することも、クライアントがサブスクライブできるトピックを制限することもできません。VHOSTS に基づいてこの制約を課すこともできますが、それには VHOSTS とおそらく数百もの VHOSTS を動的に作成する必要があります。

これはRabbitMQで可能ですか? それに対するより良いアプローチはありますか?ありがとう

4

1 に答える 1

1

クライアントだけが排他的なキューを作成できるようにしたい場合は、独自のラッパーを作成し、RabbitMQ をクライアントから完全に抽象化する必要があります。クライアントにこのラッパーを介して RabbitMQ と通信させ、ここでキューの作成とバインディングを処理します。

これにより独自のバージョンの queue_declare が公開され、exlusive=true に設定された RabbitMQ queue_declare メソッドが呼び出されます。

于 2013-10-03T15:16:45.290 に答える