2011-12-29 54 views
15

我在玩使用RavenDB作爲數據存儲的想法,該應用程序很可能具有HTML UI,WebService UI和將訪問數據的服務器實用程序。使用RavenDB的一個原因是它通過複製和分片提供的水平縮放比例。但是,似乎有幾個考慮圍繞運行Raven作爲Windows服務或通過IIS運行它。我應該將RavenDB作爲Windows服務還是通過IIS運行?

  • 安全 - 是烏鴉的服務更安全或將使用IIS允許我更多的靈活性,通過IP地址,.NET會員資格等限制
  • 緩存 - 這似乎是IIS是此功能的更好的選擇
  • 架構 - 由於我不希望任何第三方訪問數據存儲,因此通過IIS公開Raven是非常有意義的。此外,Raven和各種UI和實用程序之間將存在業務層,因此涉及IIS似乎沒有必要,可能會引入不必要的複雜性。
  • 性能 - IIS管道可能有比Windows服務的每個請求更多的開銷
  • 縮放 - 利用IIS可能更復雜,跨多個服務器向外擴展,而不是隻是一個小的批處理文件
  • 安裝烏鴉服務

EDITED

我能理解使用Raven的嵌入式配置,如果你已經是一個網絡客戶端,但是當你有幾個不同的客戶端,Raven的API需要獨立的曝光,以防止單個客戶端來回鎖定數據文件。

回答

16

Jedatu, 我們一般舉辦RavenDB IIS裏面,這讓一些事情變得更容易,尤其是服務器的管理更容易當IIS照顧所有的激活等 我們還沒有看到任何有意義的PERF差異,而且IIS對細粒度管理有更好的選擇。

+0

感謝您的回覆。 – 2012-11-05 08:30:35

5

安全 - 是烏鴉的服務更安全或將使用IIS允許我更多的靈活性,通過IP地址,.NET會員等

限制使用一個單獨的進程更加安全。

緩存 - 這似乎是IIS是此功能

DB緩存(緩存實體文檔),更好的選擇是不一樣的IIS緩存(用於緩存生成的頁面或頁面部分)

體系結構 - 由於我不希望任何第三方訪問數據存儲,通過IIS公開Raven是否真的有意義。此外,Raven和各種UI和實用程序之間將存在業務層,因此涉及IIS似乎沒有必要,可能會引入不必要的複雜性。

任何訪問Data文件夾的人都可以用烏鴉打開它。除非您使用Windows安全功能保護它,否則無所謂。

性能 - IIS可能比Windows服務

你指的是冷啓動更多的開銷?使用嵌入式Raven刪除客戶端和服務器之間的HTTP請求。

縮放 - 利用IIS可能更復雜,跨多個服務器向外擴展,而不是隻是一個小的批處理文件安裝烏鴉服務

多臺服務器需要一個單獨的烏鴉實例所有IIS: ES可以與之交談。

+0

這是有用的信息,但我不能告訴你哪個選項你推薦這種情況? – jedatu 2011-12-29 22:18:58

+0

我只是說你的考慮並不是真的有效。如果可以的話,我會去找一個服務。看起來更健壯,更好地擴展。擁有它自己的專用內存也有幫助,IIS應用程序池無法啓動。 – jgauffin 2011-12-29 22:24:02

+0

Ayende總是說IIS服務器> windows服務,關於RavenDb。 – 2011-12-30 00:05:09

相關問題