2011-12-29 14 views
15

私は、RavenDBをHTML UI、WebService UI、およびデータにもアクセスするサーバユーティリティを持つ可能性の高いアプリケーション用のデータストアとして使用していると考えています。 RavenDBを使用する理由の1つは、レプリケーションとシャーディングによって提供される水平方向のスケーリングです。しかし、RavenをWindowsサービスとして実行したり、IIS経由で実行したりすることについては、いくつかの考慮事項があるようです。RavenDBをWindowsサービスまたはIIS経由で実行する必要がありますか?

  • セキュリティ - キャッシュ
  • など、より安全なレイヴンサービスですまたはIISを使用します私のIPアドレス、.NETメンバーシップによって制限するために、より柔軟性を与える - IISは、この機能のためのより良い選択肢であるように思えます
  • アーキテクチャ - 第三者がデータストアにアクセスすることを望まないので、IIS経由でRavenを公開するのは本当に意味があります。また、RavenとさまざまなUIとユーティリティの間にビジネス層が存在するため、IISを必要とせず、不要な複雑さを招く可能性があります。
  • パフォーマンス - IISパイプラインは、おそらくWindowsサービス
  • スケーリングより各リクエストに応じてより多くのオーバーヘッドを持っている - IISを使用して、おそらく反対に、ほんの少しのバッチファイルでレイヴンサービスをインストールするために複数のサーバーにスケールアウトして、より複雑である

EDITED

私はあなたが持っているすべてを単一のWebクライアントですが、あなたは、いくつかの異なるクライアントがある場合、レイヴンのAPIがあちこちに単一のクライアントを防ぐために独立して露光する必要がある場合レイヴンのEmbedded設定を使用して理解することができます

mデータファイルをロックします。

答えて

16

Jedatu、 IISは、すべての活性化の世話をしているとき私たちは、一般的にIIS内部RavenDBをホスト、それはいくつかの物事が容易になり、特に、サーバーの管理が容易になり、など IISにはきめ細かな管理のためのより良いオプションがあります。

+0

ご回答ありがとうございます。 –

5

セキュリティ - レイヴンサービスより安全であるか、使用してIISは私より多くの柔軟性が別のプロセスがより安全である使用など

IPアドレス、.NETメンバーシップによって制限することができるようになります。

キャッシング - IISは、この機能

DBキャッシュ(キャッシュエンティティの文書)のためのよりよい選択がIISのキャッシュと同じではありませんされているように思える

(生成されたページまたはページの一部をキャッシュします)

アーキテクチャ - 第三者がデータストアにアクセスしないようにするため、IIS経由でRavenを公開するのは本当に意味があります。また、RavenとさまざまなUIとユーティリティの間にビジネス層が存在するため、IISを必要とせず、不要な複雑さを招く可能性があります。

データフォルダにアクセスする人は誰でも、それをravenで開くことができます。 Windowsのセキュリティ機能を使用して保護しない限り、その場所がどこにあるかは関係ありません。

パフォーマンス - IISは、おそらくWindowsサービス

よりも多くのオーバーヘッドを持っているあなたは、コールドスタートを参照していますか?埋め込みRavenを使用すると、クライアントとサーバ間のHTTP要求が削除されます。

スケーリング - 使用してIISは、ほんの少しのバッチファイルで

複数のサーバをレイヴンサービスをインストールするのではなく、すべてのIISその個別のレイヴンインスタンスを必要とするように、複数のサーバ間でスケールアウトすることがおそらくより複雑です。 esと話すことができます。私たちはどんな意味のあるPERFを見ていない

+0

これは参考になる情報ですが、このシナリオでどのオプションを推奨しているのかわかりません。 – jedatu

+0

私はちょうどあなたの考慮事項が本当に有効ではないと言っています。私ができるなら、私はサービスのために行くだろう。より堅牢で、より良いスケールに見えます。それ自身の専用メモリがあれば、IISアプリケーションプールはそれをサポートできません。 – jgauffin

+0

Ayendeは、RavenDbに関してIISサーバー> Windowsサービスを常に指摘してきました。 –

関連する問題