2

我们使用 Azure 作为我们的 PaaS 来托管多个通过 HTTP 相互通信的 .NET Core API 项目。当我们开始时,它只是几个端点,但就像今天和未来一样,我们需要在我们的项目之间做更多的这些通信。

在今天的解决方案中,我们HttpClient用来执行这些通信。由于我们想要一个更独立的 API 项目,我们希望使用带有 webhook 的总线。尽管我们知道我们需要什么,但我们有很多选择,而且在 Azure 中感觉有点不知所措。

我们的要求是基本的,即向特定端点发送具有最小负载的请求,例如创建 id xx 的用户。

我们有点困惑,需要在Azure 平台内指出正确的方向。随时询问您是否需要更多信息来帮助我们!

问候

4

1 回答 1

2

看起来您正在转向很棒的微服务架构。我个人认为使用 HttpClient 没有任何问题。这正是我们在 Azure Service Fabric 应用程序中进行通信的方式。我们实现了一个带有重试策略的基本 HttpClient 库,以防我们从 API 收到暂时错误,并且一切都按预期工作。您只需要确保您的服务不太“健谈”——这是一个常见的微服务问题。为此,必须精心设计服务并以合乎逻辑且最有效的方式分离职责。

还有其他可以在 Azure 云中实现的通信方式,我使用的就是:

  • 服务总线队列
  • 存储队列
  • 事件中心

它们都适用于特定场景。例如,如果您希望您的服务或某些第 3 方服务出现故障,您可能需要考虑在 EventHub 中累积消息,直到服务重新启动并运行并准备好处理它们。

因此,这完全取决于您要实现的特定场景,对于许多(大多数)场景,Http 通信应该可以正常工作 - 它的最大好处是简单和易于实现。对于某些情况,您需要“出队”策略。有时您可以只使用共享数据库并轮询每 N 个间隔。

于 2018-07-06T17:42:21.387 回答