由于文件系统,如何正确构建微服务

时间:2019-03-11 19:16:40

标签: node.js rest api microservices

我有一个API1,该API调用API 2执行以下任务:

1)裁剪图像,保存图像

此过程当然会花费很长的通话超时时间。

这两个API均在Nodejs Rest API中内置。

如何正确构建此过程,以确保没有超时?

我是否呼叫端点,然后稍后以某种方式呼叫端点以再次检查?

1 个答案:

答案 0 :(得分:1)

由于长时间运行而可能导致超时的系统类型,您可以使用aysnc操作AMQP(高级消息队列协议)进行云计算。这两个服务/应用程序应完全独立运行。您的服务1将消息放入队列中,服务2提取该消息以进行处理。完成后,它将通知服务1.

您必须注意,REST / HTTP本质上是同步的,您需要了解其含义。这意味着当您的服务1通过HTTP请求其他服务以执行某项操作并等待其完成时,您实际上是在阻塞线程。尽管您的客户端可能正在实现异步http调用,但是在后台,您仍在等待请求以同步方式完成,并且这种系统很难扩展。

另一个建议是,如果可以,请使用无服务器。例如AWS lambda / Azure函数通常非常擅长。基本上,您通知无服务器功能以执行某些操作,并且可以在完成时连接通知。但是它们的局限性是只能运行几分钟。真正取决于您是否可以进行无服务器操作。