我们有一个用WCF编写的聊天服务,我们将它托管在一个单独的IIS站点中。现在我计划在整个聊天应用程序中添加日志记录功能(在MS SQL Server数据库中),我不想影响核心聊天服务的性能。我正在编写一个单独的WCF服务,负责在数据库中编写条目。
我的问题是,我可以将新的日志记录服务作为单独的IIS站点来托管传入请求而不与常规服务共享负载,还是可以托管在同一站点下的单独虚拟目录中?
由于聊天应用程序是实时的,因此需要在性能上非常小心
请求记录服务+访问 数据库=一些延迟
我不希望被包含在主服务中。有什么建议吗?
更多解释
让我告诉你为什么我想去单独的服务。
如果日志和聊天在同一服务中 -
现在我的观点是,如果两个服务都托管在同一个站点下(它有一个IIS的入口点)会更好吗?或者将它们托管为不同的网站更好?
答案 0 :(得分:1)
IIS中的站点实际上只是表示实体,因为您可能希望将一个应用程序绑定到 site1.example.com ,将另一个应用程序绑定到 site2.example.com 。服务器资源方面的“加载”与工作进程直接相关,工作进程绑定到应用程序池。
因此,结合所有这些,您可以将新的日志记录服务放在最有意义的地方。将其分配给单独的应用程序池,它不会在IIS或ASP.NET管道方面与其他服务“共享”资源。 (显然,同一服务器上的应用程序正在争夺有限的资源,但这似乎不是您的关注点)
那就是说,我不太明白你所建议的系统之间的关系。记录请求不会成为应用程序本身的一部分吗?或者您的客户端是否与聊天服务和日志记录服务保持连接? (这似乎是一个奇怪的架构)