8

Azure Service Bus アーキテクチャを理解するのに数時間かかりました。特に、このキューイング テクノロジを使用してメッセージ ルーティングをサポートできるかどうかを考えています。これは、RabbitMQ のルーティング機能に似たものです。 http://www.rabbitmq.com/tutorials/tutorial-four-python.html

代わりに直接交換を使用します。直接交換の背後にあるルーティング アルゴリズムは単純です。メッセージは、バインディング キーがメッセージのルーティング キーと正確に一致するキューに送られます。

このセットアップでは、2 つのキューがバインドされた直接交換 X を見ることができます。最初のキューはバインディング キー オレンジでバインドされ、2 番目のキューには 2 つのバインディングがあり、1 つはバインディング キー ブラック、もう 1 つはグリーンです。

このようなセットアップでは、オレンジ色のルーティング キーで交換に公開されたメッセージはキュー Q1 にルーティングされます。黒または緑のルーティング キーを持つメッセージは Q2 に送られます。他のすべてのメッセージは破棄されます。

この種のキューを実装するための最適なベクトルを推奨するために、Service Bus アーキテクチャを深く理解している人を探しています。

4

1 に答える 1

11

Windows Azure Service Busのトピックとサブスクリプションでは、まったく同じことができます。

ここに画像の説明を入力してください

画像をあなたの例と比較してみましょう:

  • 直接交換Xは、画像内のDataCollection Topicになります。
  • Q1はダッシュボード Subscriptionになります(RedmondFilterに設定されています)
  • Q2はインベントリ Subscriptionになります(なしFilter、つまりすべてのメッセージを受信します)。

実はとてもシンプルです。クライアントはトピックにメッセージを送信し(キューと同様)、このメッセージにメタデータを追加できます(これはとして使用できますbinding key)。トピック自体からのメッセージを読み取らないようになりました。トピックはメッセージをすべてのサブスクリプションに転送します。メッセージルーティングを実装するには、SQLと同様の構文を使用して、1つ以上のサブスクリプションにフィルターを設定するだけです。

Pythonチュートリアル:ServiceBusトピック/サブスクリプションの使用方法

于 2012-12-06T22:17:34.820 に答える