我正在进行当前构建在以下体系结构之上的项目:
1)第一解
2)第二解
和WebAPI位于同一台服务器上。WebAPI直接访问数据库,而则通过WebAPI访问数据库。选择这种架构的原因是为了缩短开发时间,因为Web Portal和智能手机应用程序调用了85%的相同的web服务。然而,我非常担心这是多么好的性能架构。我认为客户Web门户应该直接访问数据库,这将是更有效的方式。
对此有什么想法吗?
发布于 2012-11-17 17:08:22
体系结构总是很棘手的,它总是在开发速度、可维护性、性能和可伸缩性等不同因素之间做出妥协。所以,你需要权衡所有的利弊。
通过WebAPI访问数据库
1.在性能上肯定会引入一些开销。但多少钱?假设通过附加包装器(WebAPI)传递调用,每次调用将花费大约2到3毫秒,大约200 of的额外内存总数。我认为,这不是一个真正的问题,但你更清楚所有的细节,这取决于你。
2.该解决方案可以从使用缓存中获得一些好处。如果您将IIS配置为将请求缓存到WebAPI,那么WebAPI客户端和门户都将提高性能。
通过DAL直接访问DB
1.理论上,您正在为您需要处理的DB引入两个入口点。如果您需要添加一些逻辑,这些逻辑必须由WebAPI客户端和您的门户使用,并且该逻辑是特定于web的(例如,与用户会话相关的内容)?您不应该将它添加到DAL中,而是需要使用另一个库添加另一个层,它将被WebAPI和您的门户所使用。如果您唯一的访问点是WebAPI,那么您可以只修改WebAPI以获得结果。
概括地说:
这些只是一些利与弊。但是如果你的项目不是很大,如果它不打算承担很大的负担,那么我要考虑的唯一因素就是开发的成本。如果使用WebAPI作为单个入口点更快,那么只需使用它即可。
https://stackoverflow.com/questions/13431390
复制相似问题