スケールアウトされたパブリッシャー (DB サブスクリプション ストレージを使用) からの複数のパブリケーションと、スケールアウトされたサブスクライバー (ディストリビューターを使用) による複数のサブスクリプションのコンテキストで、次の質問を検討してください。自動化された MSI を使用して、初期展開、アップグレードなどのためにインストールとアンインストールが定期的に行われます。 .
- DB サブスクリプション ストレージを使用している場合、DB がダウンした場合はどうなりますか? メッセージを公開するためにサブスクリプション DB へのアクセスが必要な場合、メッセージはどのように配信されますか? それは失われますか?Bus.Publish の呼び出しは例外をスローしますか?
- ダウンタイムの展開が必要ないと仮定すると、特定のパブリケーションのサブスクリプション DB を別のサーバーに移動したい場合はどうなるでしょうか? このような移行をどのように管理しますか?
- サブスクライバー側のディストリビューターについても同じ質問があります。ディストリビューター エンドポイントを移動したい場合はどうすればよいでしょうか? 考えられるシナリオの 1 つは、単一のディストリビューター マシンを使用する複数のサブスクリプションがある場合、それらの一部を別のディストリビューター サーバーに移動して負荷を軽減するのが難しい場合です。
- このようなセットアップの場合、インストール/アンインストールのシナリオはどのようになりますか (最初のアップグレードと継続的なアップグレードの両方)? 「論理パブリケーション」とサブスクリプション DB の展開、および「論理サブスクリプション」とディストリビュータ用の特別なインストール/アンインストール スクリプトが必要なようです。パブリッシャー インスタンスには、特別なインストール/アンインストール ロジックは必要ありません (構成されたサブスクリプション DB を使用してメッセージのパブリッシュを開始し、アンインストールされると停止するため)。サブスクライバー ワーカー ノードは、ディストリビューター エンドポイントの正しい構成以外に、インストール時に特別なことは必要ありませんが、ワーカー ノードのディストリビューター リストから確実に削除されるように、アンインストール ロジックが必要です。