SQL Server トランスポート (2012) で NServiceBus 4.6 を使用しています。SQL Server データベースは、可用性グループを使用して高可用性を実現するように設定されています。
当社の DBA は、トランスポート データベースで発生している「チャーン」の量、特にこれが WAN に及ぼす負荷について不満を漏らしています。
私たちは現在 XML シリアライゼーションを使用しているので、利用可能な他のシリアライゼーション オプションを調べ始めました (まだ判読できるように、おそらく JSON を好むでしょう)。しかし、これを調べ始めると、メッセージ本文は通常 600 ~ 1000 バイトであるのに対し、メッセージ ヘッダーは通常 1200 ~ 1800 バイトの範囲であることがわかりました1。そのため、ボディサイズに関して大幅な節約を達成したとしても、私が探している大規模な改善は実現しません.
質問
私が理解しているように、メッセージが SQL Server データベースに保存されているときにヘッダーを読み取る必要がないことを考えると、メッセージを圧縮する方法はありますか?
または、このデータベースに追加および削除するデータの量を減らすための他の戦略はありますか? (現時点では NSB 4.6 のまま)
1実際にはメッセージ クラスに属さないメタデータ用に、いくつかのカスタム ヘッダーを独自に追加しています。
すべてのメッセージは少なくともキュー テーブルに入れられ、そのテーブルから削除され、監査テーブルに配置されてから、後で古い監査エントリを削除するため、多くのメッセージを取得します。 SQL Server トランザクション ログに記録されます。