Architecture 我应该将RavenDB作为windows服务运行还是通过IIS运行?
我正在考虑使用RavenDB作为应用程序的数据存储,该应用程序很可能具有HTML UI、WebService UI和访问数据的服务器实用程序。使用RavenDB的一个原因是它通过复制和分片提供了水平扩展。然而,似乎在将Raven作为windows服务运行或通过IIS运行时需要考虑几个因素Architecture 我应该将RavenDB作为windows服务运行还是通过IIS运行?,architecture,ravendb,Architecture,Ravendb,我正在考虑使用RavenDB作为应用程序的数据存储,该应用程序很可能具有HTML UI、WebService UI和访问数据的服务器实用程序。使用RavenDB的一个原因是它通过复制和分片提供了水平扩展。然而,似乎在将Raven作为windows服务运行或通过IIS运行时需要考虑几个因素 安全性-Raven服务是否更安全,或者使用IIS是否允许我更灵活地限制IP地址、.NET成员资格等 缓存-似乎IIS是此功能的更好选择 架构-因为我不希望任何第三方访问数据存储,所以通过IIS公开Raven真
- 安全性-Raven服务是否更安全,或者使用IIS是否允许我更灵活地限制IP地址、.NET成员资格等
- 缓存-似乎IIS是此功能的更好选择
- 架构-因为我不希望任何第三方访问数据存储,所以通过IIS公开Raven真的有意义吗。此外,Raven与各种UI和实用程序之间还有一个业务层,因此涉及IIS似乎是不必要的,可能会带来不必要的复杂性
- 性能-IIS管道在每个请求上的开销可能比windows服务更多
- 扩展-使用IIS跨多个服务器扩展可能比只安装带有小批处理文件的Raven服务更复杂
我们没有看到任何有意义的性能差异,IIS有更好的细粒度管理选项。这是有用的信息,但是我不知道您建议在这种情况下使用哪种选项?我只是说您的考虑不是很有效。如果可以的话,我会去服务的。看起来更健壮,伸缩性更好。拥有自己的专用内存也会有所帮助,IIS应用程序池无法将其加载。对于RavenDb.@Pure.Krome,Ayende总是说IIS服务器>windows服务。您是否碰巧有Ayende对该问题发表评论的链接?我好像什么也找不到。