我正在开发目前基于以下架构构建的项目:
1)第一个解决方案
2)第二个解决方案
Customer Web Portal和WebAPI位于同一台服务器上。 WebAPI直接访问数据库,而Customer Web Portal则通过WebAPI访问它。选择此架构的原因是为了缩短开发时间,因为Web Portal和智能手机应用程序调用了85%的相同Web服务。但是,我非常担心这是多么好的性能架构。我认为客户Web门户应该直接访问数据库,并且这将是更有效的方式。
对此有何想法?
答案 0 :(得分:2)
体系结构始终是棘手的,它总是在不同因素(如开发速度,可维护性,性能和可伸缩性)之间进行折衷。所以,你需要权衡所有的利弊。
1。绝对会在性能上引入一些开销。但是多少钱?假设通过额外的包装器(WebAPI)传递您的呼叫将花费您每次呼叫大约2-3个额外的毫秒,以及大约200MB的额外RAM。我认为,这不是一个真正的问题,但你知道所有细节,这取决于你。
2。该解决方案可以从使用缓存中获得一些好处。如果将IIS配置为缓存对WebAPI的请求,则两者都有:WebAPI客户端和门户将提高性能。
1。从理论上讲,您需要为您需要处理的数据库引入两个入口点。如果您需要添加一些必须由WebAPI客户端和门户网站使用的逻辑,并且该逻辑是特定于Web的(例如,与用户会话相关的内容),该怎么办?您不应该将其添加到DAL,而是需要添加另一个图层,该图层将由WebAPI和您的门户使用。如果您的唯一访问点是WebAPI,那么您只需修改WebAPI即可获得结果。
这些只是一些优点和缺点。但是如果你的项目不是很大,如果它不打算承受很高的负荷,那么我考虑的唯一因素就是开发成本。如果将WebAPI作为单个入口点使用速度更快,那么就去使用它。