处理异步休息服务的最佳做法

时间:2018-08-20 07:01:46

标签: rest asynchronous

我正在处理一项服务,该服务应处理异步请求。 它应该像这样工作: 我的服务将在消费者和后端系统之间。消费者可以是一个或多个。 消费者向我的服务发送订单,该订单将移交给后端系统,我的服务的消费者获得“ HTTP 202 Accepted”。 然后,后端系统需要半天的时间来处理该订单。 处理完后,后端系统将调用我的impl的回调服务。而且我必须通知消费者有关其请求的更新。

消费者-SYNC->我的服务-SYNC->后端系统

消费者<-ASYNC-我的服务<-ASYNC-后端系统

因为可能有多个使用者,如何处理对使用者的响应的调度以及如何处理使用者的响应服务的凭证?

编辑: 它是一项休息服务 也许这是拥有某种查找表的最佳方法,在该表中我可以识别出哪个消费者发送了哪个订单(orderID),以便我可以将该请求的状态更新转发回正确的消费者? 关于使用者的回调服务的凭据和URL,我只需在配置文件中定义一次即可在运行时读取它? 系统需要非常安全,因此在从消费者向我的服务发送订单时发送回调URL和api密钥不是一个好主意。

1 个答案:

答案 0 :(得分:1)

  

因为可能有多个使用者,如何处理对使用者的响应的调度以及如何处理使用者的响应服务的凭证?

可能是您正在寻找websub,其中包括authenticated content distribution的机制。可能还可以使用TLS Client Authentication,由中心充当客户端。

据我所知,不需要将发布者与中心分开;相同的服务可以同时扮演这两个角色。

相关问题