我正在考虑将RavenDB用作应用程序的数据存储的想法,该应用程序很可能具有HTML UI,WebService UI和也会访问数据的服务器实用程序。使用RavenDB的原因之一是它通过复制和分片提供的水平扩展。但是,围绕Raven作为Windows服务运行或通过IIS运行似乎有一些注意事项。
安全性-Raven服务更安全还是使用IIS使我有更大的灵活性来限制IP地址,.NET成员资格等。
缓存-似乎IIS是此功能的更好选择
体系结构-由于我不希望任何第三方访问数据存储,因此通过IIS公开Raven真的很有意义。而且,Raven与各种UI和实用程序之间将存在一个业务层,因此,涉及IIS似乎是不必要的,并且可能会引入不必要的复杂性。
性能-IIS管道在每个请求上的开销可能比Windows服务更多
扩展-使用IIS跨多个服务器进行扩展可能更复杂,而不是仅使用一个小的批处理文件安装Raven服务
已编辑
如果您只有一个Web客户端,那么我可以理解使用Raven的嵌入式配置,但是当您拥有多个不同的客户端时,需要独立公开Raven的API,以防止单个客户端锁定数据文件。
最佳答案
耶达图
我们通常将RavenDB托管在IIS内,这使某些事情变得更容易,尤其是当IIS处理所有激活等操作时,服务器的管理也变得更加容易。
我们还没有看到任何有意义的性能差异,IIS为细粒度管理提供了更好的选择。