gpt4 book ai didi

c# - 在多个解耦系统之间进行通信

转载 作者:行者123 更新时间:2023-11-30 14:30:48 25 4
gpt4 key购买 nike

我们有多个分离的系统。这些系统提供由移动应用程序和其他客户端应用程序使用的公共(public) API。

我们现在需要这些系统在某些调用期间(无论出于何种原因)在内部相互通信。我在可能的解决方案之间左右为难。

创建安全的 API 调用

为每个系统托管一个内部 ASP.NET Web API,以便它们可以相互公开数据和功能。

  • 优点:低耦合。只要 API 调用结构不变,系统就可以自行发展。
  • 缺点:非常慢。与数据库查询相比,HTTP 请求非常慢。这可能会严重影响我们公开通话的速度。

解决方案之间的引用存储库项目

在多个项目之间共享和包含存储库(数据访问)代码库。

  • 优点:非常快。检索相关数据将非常快,因为它只是一个数据库查询。
  • 缺点:高度耦合。在系统 A 上重建和发布对系统 B 可能意味着相同,因为它们将共享公共(public)代码。

这些解决方案似乎都不理想。

这是 WCF 的工作吗?

最佳答案

Very slow. An HTTP request is deathly slow when compared to a database query. This could severely affect the speed of our public calls

嗯。不。例如,RavenDb 客户端 API 是使用 HTTP 构建的。其中的所有数据库查询都通过 HTTP 执行。您还应该知道大多数数据库引擎通过网络与客户端通信(使用套接字或命名管道)。

我的意思是 HTTP 引入的开销是微不足道的。

HTTP 的优点在于它使您能够随时轻松地缓存查询,因为有许多 HTTP 的现成缓存解决方案。当您的用户群增长时,负载平衡也会发生同样的事情。

因此我会为此使用 HTTP。

关于c# - 在多个解耦系统之间进行通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22011947/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com