2016-09-06 7 views
0

私の新しいプロジェクトでは、すべてのコンポーネントがAzureにデプロイされます。私はRabbitMQを使ってイベントを処理するサードパーティのアプリケーションを持っています。これらのイベントを購読して、自分のデータベースのイベントにデータを保存するように処理したいと思っています。AzureでRabbitMQのイベントを購読して処理する

どのような方法が最適でしょうか? webjobsを使ってRabbitMQのために私自身のカスタムトリガー/バインダーを書いていますか?サブスクリプションベースのルーティングを持つために、事前

答えて

0

でアドバイスを

おかげで、あなたはRabbitMQの中でトピックを使用することができます。トピックを使用すると、特定のキューにイベントをプッシュすることができ、それらのキューのコンシューマは、データをデータベースに書き込む処理を実行できます。処理するのは、各キューに対して正しいルーティングキーを持つことだけです。

このようにして、サブスクリプションベースのメカニズムを使用できます。このアプローチの唯一のことは、各イベントごとに1つのキューが存在することです。

イベントごとに1つのキューを持つ利点は、イベントを追跡して簡単にデバッグできることです。

イベントの数が非常に多い場合は、キューを1つだけ持つことができますが、メッセージを消費した後でイベントをトリガーする必要があります。ここで

は参照用のリンクです:あなたの条件に基づいて https://www.rabbitmq.com/tutorials/tutorial-five-python.html

1

、私はAzureのWebJobがあなたの目的を達成するための理想的なアプローチであることを前提としています。その場合、コンシューマ・クライアントとしてWebJobを使用して、イベントをサブスクライブしてデータを処理することができます。 WebJobを作成し、Mitraが提供するリンクをたどってイベントを購読し、WebJobでロジックプロセスを実装しようとしてください。

WebJobは、Azure Web Appのコンテキストでバックグラウンドプロセスとして実行されることに注意してください。 WebJobを継続的に稼動させるためには、標準モードまたは高度に稼働している必要があり、「常時オン」設定を有効にする必要があります。

スケーリングを考慮すると、Azure Websitesスケール機能を使用して余分なWebJobインスタンスを拡張できます。スケーリングのために、これはtutorialを参照することができます。

関連する問題