处理多级网络请求的正确方法是什么?



我有一个接受来自客户站点的HTTP请求的服务。然后,该服务向事务性电子邮件提供程序发送 HTTP 请求,其中包含对服务的初始请求中提供的信息。工作流如下所示:

客户站点 ⟷电子邮件服务交易电子邮件提供商

我可以想到两种处理请求的可能性,以便将来自事务电子邮件提供程序的错误报告给客户站点。

  1. EmailService立即向TransactionalEmailProvider当它收到来自CustomerSite.EmailService立即响应 如果请求正确,则使用成功代码CustomerSite形成。如果在向TransactionalEmailProviderEmailService发送失败 使用 POST 请求返回EmailService的通知使用 网络钩子实现。
  2. 电子邮件
  3. 服务向事务性电子邮件提供商发送请求,并在响应客户站点请求之前等待响应,无论成功还是失败。

现在我正在实现第一个版本,因为我不希望EmailService的响应能力取决于TransactionalEmailProvider的响应能力。

这是处理依赖于第二级 HTTP 请求的 HTTP 请求的合理方法吗?是否存在一种优于另一种的情况?

这是处理依赖于第二级 HTTP 请求的 HTTP 请求的合理方法吗?是否存在一种优于另一种的情况?

这实际上取决于系统要求,这取决于您希望在某些组件发生故障或工作负载变化时的行为方式。

如果您希望系统是被动的或可扩展的,则应尽可能使用异步请求。为此,您的系统应该是消息驱动的。您可以在此处阅读有关反应式系统的更多信息。这似乎是您的第一选择。

如果你想要一个更简单的系统,那么使用同步/阻塞请求,就像你的选项2一样

相关内容

  • 没有找到相关文章

最新更新