我有一个接受来自客户站点的HTTP请求的服务。然后,该服务向事务电子邮件提供商发送HTTP请求,其中包含在对服务的初始请求中提供的信息。工作流程如下所示:
CustomerSite ⟷ EmailService ⟷ TransactionEmailProvider
我可以想到处理请求的两种可能性,以便可以将TransactionalEmailProvider中的错误报告给CustomerSite。
EmailService
立即向其发送异步请求
TransactionalEmailProvider
收到来自的请求时
CustomerSite
。 EmailService
立即响应
CustomerSite
如果请求正确,则会显示成功代码
形成。如果发送请求时发生了故障
TransactionalEmailProvider
,EmailService
发送失败
使用POST返回EmailService
的POST请求的通知
webhook实现。 现在我正在实施第一个版本,因为我不希望EmailService
的响应能力取决于TransactionalEmailProvider
的响应能力。
这是处理依赖于第二级HTTP请求的HTTP请求的合理方法吗?是否存在一种优先于另一种的情况?
答案 0 :(得分:1)
这是处理依赖于第二级HTTP请求的HTTP请求的合理方法吗?是否存在一种优先于另一种的情况?
这实际上取决于系统要求,它取决于您在某些组件发生故障或工作负载变化时的行为方式。
如果您希望系统具有反应性或可扩展性,则应尽可能使用异步请求。为此,您的系统应该是消息驱动的。您可以阅读有关reactive system here的更多信息。这似乎是你的第一选择。
如果您想要一个更简单的系统,那么请使用同步/阻止请求,例如您的选项号。 2