バックグラウンド:
1 日を通して頻繁に更新されるアイテムの大規模な (1500 万以上) テーブルがあります (1 日平均 300K の変更)。保留中の変更はステージング テーブルに格納され、このテーブルから変更を読み取り、更新を行い、変更を処理済みとしてマークするジョブが終日実行されます。
他の多くのアプリケーションは、項目テーブルのデータを使用してさまざまなタスクを実行します。多くの場合、これらのタスクは、ライブ データを古いスナップショットと比較し、それに応じて他のシステムを更新する必要があるため、スケジュール化され集中的に行われます。たとえば、eBay に商品を出品し、ライブの商品データを既存の出品と比較して、新しい eBay 出品を挿入する必要があるかどうか、販売した商品を削除する必要があるかどうか、数量を更新する必要があるかどうかなどを確認します。データが非常に大きいため、ほとんどの場合、これらのアプリケーションのほとんどは実行頻度が低く、多くの場合、最新のものではありません。
私の質問:
Service Broker を使用してパブリッシャー/サブスクライバー パターンを実装することを検討しています。目標は、アイテムが変更されたときにメッセージを発行することです。これにより、他のさまざまなシステム (eBay アプリケーションなど) がサブスクライブできます。これにより、何が変更されたかだけでなく、すべてのデータを照会することを伴う大規模で頻度の低い更新ではなく、より詳細な更新をリアルタイムに近づけることができます。しかし、Google を使用した後では、これは一般的なデータベース パターンではないように思われ、警告が表示されます。これは Service Broker の有効な使用法ではありませんか (ただし、Pro Sql Server 2008 Service Brokerで Pub/Sub の実行に関する小さなセクションを見つけました)。この問題は通常どのように解決されますか? それは十分に一般的な問題のようです。
TL;DR:
目標: 単一の項目が変更されたときに、さまざまなシステムを動的で疎結合の方法で更新します。
質問: Service Broker で実装された pub/sub スタイルのソリューションは、大量の設定で実行可能なソリューションですか?