あるサービスバスから別のサービスバスにメッセージをコピーするための最良のアプローチは何ですか?

chugh97

少し背景を説明しましょう。LIVE環境で複数のサブスクライバーを持つトピックフィルターを備えたサービスバスにデータをストリーミングしているIoTアプリがあります。すべてが良好です。今、私は完全に独立したテスト環境を作成しようとしています。データがLIVEにストリーミングされているので、理想的には、このテスト環境に到着するすべてのメッセージのコピーを作成して、テストチームの環境を分離できるようにします。これまでに提案された解決策は、コードに2番目のサービスバス接続を追加し、ライブバスとテストバスの両方にメッセージを追加することです。これには、アプリの多くの領域でコードを変更する必要があり、扱いにくいです。2番目のバスに到着したメッセージをコピーできるよりエレガントなアプローチを探しています。最初のバスはコピーを取得し、2番目のバスもコピーを取得します。

ショーンフェルドマン

Azure Service Busは、現在、名前空間間の転送をサポートしていません。それが可能であれば、別の名前空間に自動転送するサブスクリプションを設定できます。それまでは、実際に何かカスタムを設定する必要があります。

これまでに提案された解決策は、コードに2番目のサービスバス接続を追加し、ライブバスとテストバスの両方にメッセージを追加することです。これには、アプリの多くの領域でコードを変更する必要があり、扱いにくいです。

それに加えて、それはあなたの本番アプリケーションにテストの懸念をもたらしますが、それは正しくないと感じています。私は(だけでなく仕事ができる他のオプションがあります。注)しようとするだろうなアプローチは、追加のサブスクリプション持っているだろうエンティティをしてご紹介Azureの機能によってトリガServiceBusTriggerあなたが設定しますサブスクリプションエンティティに設定されています。この関数は、テスト名前空間を使用するように構成されServiceBus出力バインディングを利用できます。このアプローチの利点は次のとおりです。

  1. 本番アプリケーションを変更する必要はありません。
  2. サブスクリプションのフィルタリングを介して、テストする名前空間にプッシュされるメッセージを完全に制御できます。
  3. サブスクリプションを無効/有効にするか、関数と一緒に削除することで、関数へのメッセージの流れを制御できます。

関数の実行には追加のコストが発生します。

疑似コード:

[FunctionName("CloneForTesting")]
[return: ServiceBus(TopicName = "topic", SubscriptionName = "subscription", Connection = "ProductionServiceBusConnection")]
public static string ServiceBusOutput([ServiceBusTrigger(QueueName = "queue", Connection = "TestingServiceBusConnection")] 
Message message, ILogger log)
{
    log.LogInformation($"Cloning message with ID {message.MessageId}");
    return message.Clone();
}

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

リソースコントローラー内で複数のサービスを使用するための最良のアプローチは何ですか?

分類Dev

アマゾンウェブサービスSQSからのメッセージをポーリングするための最良の方法は何ですか

分類Dev

ステートフルマイクロサービスを作成するための最良のアプローチ(プラクティス)は何ですか?

分類Dev

ピラミッドサーバー-サブプロセスを監視するための最良の方法は何ですか?

分類Dev

Androidアプリからサーバー上のデータベースにデータを転送するための最良の方法は何ですか?

分類Dev

Androidアプリからサーバー上のデータベースにデータを転送するための最良の方法は何ですか?

分類Dev

AngularサービスでバックエンドAPIからのデータを操作するための最良の方法は何ですか?

分類Dev

アプリケーションロードバランサーへのアクセスを制限するための最良の方法は何ですか?

分類Dev

あるHornnetQサーバーから別のサーバーにメッセージのバックアップをコピーする方法は?

分類Dev

リストビューのすべてのデータをサーバーに送信するための最良の方法は何ですか?

分類Dev

このメールサービスを実装するための最良のアプローチ

分類Dev

Angularサービスで無限のオブザーバブルのサブスクライブを解除するための最良の方法は何ですか

分類Dev

非同期Webサービス応答から管理対象オブジェクトを更新するための最良のアプローチは?

分類Dev

メッセージブローカーなしで、API統合(WebClientを直接使用)のためのリアクティブアプローチマイクロサービスを使用することにリスクはありますか?

分類Dev

プログラムで型をサービスに渡すための最良の方法は何ですか?

分類Dev

docker-composeで特定のサービスのcronジョブ(スケジュールされたタスク)を追加するための最良のアプローチは何ですか?

分類Dev

iOSでストーリーボードをあるアプリから別のアプリにコピーする最良の方法は何ですか?

分類Dev

サービス内のすべてのインポートをすべてのdaskワーカーで利用できるようにするための最良のアプローチは何ですか?

分類Dev

Ionic 2: ポップオーバー コールバックからメイン ページのサービスにアクセスする

分類Dev

aptやその他のもののプロキシサーバーアドレスを維持するための最良の方法は何ですか?

分類Dev

シンプルなサービス/デーモン(シンプルなUI)をデプロイするための最良のクロスプラットフォームアプローチ(Windows / Mac)は何ですか

分類Dev

SingleThreadModelは非推奨であり、スレッドセーフを保証しません。サーブレットでスレッドセーフを保証するための最良の解決/設計アプローチは何ですか?

分類Dev

アプリケーションロジックをマイクロサービスに分割する最良の方法は何ですか

分類Dev

アプリケーションロジックをマイクロサービスに分割する最良の方法は何ですか

分類Dev

あるサービスから別のサービスにリストをコピーする方法(Spring Boot)

分類Dev

複数のアクティビティでスライダーを左に移動するための最良のアプローチは何ですか

分類Dev

サブスクライバー機能を使用するための最良の方法は何ですか?サブスクリプション/サブスクライバーのリストをユーザーまたはサブスクライブされたページの下に保存する必要がありますか?

分類Dev

Webサービスを安全にするための最良の方法は何ですか

分類Dev

サービスメソッドを使用するユニットテストノードjsコントローラーへの最良のアプローチは何ですか

Related 関連記事

  1. 1

    リソースコントローラー内で複数のサービスを使用するための最良のアプローチは何ですか?

  2. 2

    アマゾンウェブサービスSQSからのメッセージをポーリングするための最良の方法は何ですか

  3. 3

    ステートフルマイクロサービスを作成するための最良のアプローチ(プラクティス)は何ですか?

  4. 4

    ピラミッドサーバー-サブプロセスを監視するための最良の方法は何ですか?

  5. 5

    Androidアプリからサーバー上のデータベースにデータを転送するための最良の方法は何ですか?

  6. 6

    Androidアプリからサーバー上のデータベースにデータを転送するための最良の方法は何ですか?

  7. 7

    AngularサービスでバックエンドAPIからのデータを操作するための最良の方法は何ですか?

  8. 8

    アプリケーションロードバランサーへのアクセスを制限するための最良の方法は何ですか?

  9. 9

    あるHornnetQサーバーから別のサーバーにメッセージのバックアップをコピーする方法は?

  10. 10

    リストビューのすべてのデータをサーバーに送信するための最良の方法は何ですか?

  11. 11

    このメールサービスを実装するための最良のアプローチ

  12. 12

    Angularサービスで無限のオブザーバブルのサブスクライブを解除するための最良の方法は何ですか

  13. 13

    非同期Webサービス応答から管理対象オブジェクトを更新するための最良のアプローチは?

  14. 14

    メッセージブローカーなしで、API統合(WebClientを直接使用)のためのリアクティブアプローチマイクロサービスを使用することにリスクはありますか?

  15. 15

    プログラムで型をサービスに渡すための最良の方法は何ですか?

  16. 16

    docker-composeで特定のサービスのcronジョブ(スケジュールされたタスク)を追加するための最良のアプローチは何ですか?

  17. 17

    iOSでストーリーボードをあるアプリから別のアプリにコピーする最良の方法は何ですか?

  18. 18

    サービス内のすべてのインポートをすべてのdaskワーカーで利用できるようにするための最良のアプローチは何ですか?

  19. 19

    Ionic 2: ポップオーバー コールバックからメイン ページのサービスにアクセスする

  20. 20

    aptやその他のもののプロキシサーバーアドレスを維持するための最良の方法は何ですか?

  21. 21

    シンプルなサービス/デーモン(シンプルなUI)をデプロイするための最良のクロスプラットフォームアプローチ(Windows / Mac)は何ですか

  22. 22

    SingleThreadModelは非推奨であり、スレッドセーフを保証しません。サーブレットでスレッドセーフを保証するための最良の解決/設計アプローチは何ですか?

  23. 23

    アプリケーションロジックをマイクロサービスに分割する最良の方法は何ですか

  24. 24

    アプリケーションロジックをマイクロサービスに分割する最良の方法は何ですか

  25. 25

    あるサービスから別のサービスにリストをコピーする方法(Spring Boot)

  26. 26

    複数のアクティビティでスライダーを左に移動するための最良のアプローチは何ですか

  27. 27

    サブスクライバー機能を使用するための最良の方法は何ですか?サブスクリプション/サブスクライバーのリストをユーザーまたはサブスクライブされたページの下に保存する必要がありますか?

  28. 28

    Webサービスを安全にするための最良の方法は何ですか

  29. 29

    サービスメソッドを使用するユニットテストノードjsコントローラーへの最良のアプローチは何ですか

ホットタグ

アーカイブ