2016-09-27 5 views
2

私たちは、アプリケーション用に複数の負荷分散されたIIS WebサーバーをMS SQLサーバーデータベースにバックアップしています。アプリケーション構成情報をデータベースに格納します。アプリケーションが実行されている間、私は頻繁に設定を変更し、変更を他のWebサーバーに伝播する必要があります。これを行う良い方法はありますか?私はSignalRを使ってそれをやっています(他のサーバに変更が発生したことを警告し、設定を更新する必要があります)が、SignalRは常に信頼できるとは限りません。より良い解決策はありますか?IIS Webサーバーの設定を同期する

+0

Node.Js + Socket.IOを試してみましたか? –

+1

@vishwaratna SignalRとはまったく異なる技術スタックをお勧めしますが、これは既存のテクノロジースタック内で同じことを効果的に行いますか? –

答えて

0

を更新ありがとう私は今アプリケーションレベル設定変更を伝播する必要があるために、あなたを理解しています。

前述のとおり、SignalRを使用できます。これには、 websocket接続をホストするサーバーが必要ですが、「インスタント」の利点があります。

また、要件が単純な場合は、短期間のメモリ内キャッシュで十分です。

複雑な場合は、イベントキュー(MSMQ、RabbitMQ)を調べることをおすすめします。このモデルでは、コンフィグレーションを変更するインスタンスは、バックグラウンドスレッド上の他のインスタンスによって消費されるイベントをキューにパブリッシュします。

オリジナル回答

Microsoft Web Deployは、これを行うために建てられました。アプリケーションプール設定やSSL証明書まで、サーバー間でサイトを同期することができます。

IISのドキュメントサイトには、使用例に関連する特定のページ(Synchronize IIS)があります。

あり、Web配置の設定に関わる多くので、私はここですべてを説明しようとしませんが、しかし、後世のためになる、リモートマシンのローカルサイトを同期するためのコマンドを理由から:

msdeploy.exe -verb:sync 
      -source:apphostconfig="Default Web Site" 
      -dest:apphostconfig="Default Web Site",computername=Server1 

(コマンドは、読みやすくするために複数行に分割された)

全く別のアプローチとして、あなたはまた、Powershell Desired State ConfigurationまたはChefのような「プル構成」システムを使用することができます。

+0

私が正しく理解していれば、これは現時点では問題ではない初期のサーバ/ IIS設定を同期することです(私は道を見なければなりませんが)。今私の問題は、ユーザーが(データベースに格納されている)構成を変更し、変更を受け取ったサーバーは変更を認識していますが、構成の変更(IISを再起動せずに)を他のWebサーバーに通知する必要があります – jwerfel

+0

@ jwerfel私の答えを更新しました。 –

+1

レスポンス@ richard-szalayのおかげで、私はSignalRに固執すると思いますが、私たちはいくつかのWebサーバーしか持っていないので、もっと高度なキューを使うことにします。 – jwerfel

関連する問題