我们有多个解耦系统。这些系统提供移动应用程序和其他客户端应用程序使用的公共API。
我们现在需要这些系统在某些调用期间(无论出于何种原因)在内部进行内部通信。我在可能的解决方案之间徘徊。
为每个系统托管一个内部ASP.NET Web API,以便它们可以相互公开数据和功能。
在多个项目之间共享并包含存储库(数据访问)代码库。
这些解决方案似乎都不理想。
这是WCF的工作吗?
答案 0 :(得分:3)
很慢。与数据库查询相比,HTTP请求非常慢。这可能严重影响我们公共电话的速度
好。没有。例如,RavenDb客户端API是使用HTTP构建的。其中的所有数据库查询都是通过HTTP执行的。您还应该知道大多数数据库引擎通过网络与客户端通信(使用套接字或命名管道)。
我所说的是HTTP引入的开销很小。
使用HTTP的好处在于,它可以让您随时轻松地缓存查询,因为有数十种即用型HTTP缓存解决方案。当用户群增长时,负载平衡也是如此。
因此我会使用HTTP。
答案 1 :(得分:3)
我们正在为此目的使用WCF。通常,这是处理您提到的场景的方式,我认为,除非您有非常具体的要求。
如果您在其间使用消息传递代理,则(WCF)服务解决方案可以很好地扩展。
根据WCF和Web API之间的差异权衡您的优先级。见this