为什么要用异步非阻塞框架构建API?

为什么要用异步非阻塞框架构建API?,第1张

概述我一直在研究 Play Framework作为帮助我构建简单API的可能候选人.然而, Django Rest Framework(DRF)也似乎是一个非常强大的内容. 据我所知,DRF不会像Play Framework那样做自己的异步(或非阻塞)框架,但是我对这是否重要也感兴趣.我一直在想的情况是通过Mandrill向用户发送电子邮件 – 我不希望我的API陷入僵局等待Mandrill API来 我一直在研究 @L_404_0@作为帮助我构建简单API的可能候选人.然而,Django Rest Framework(DRF)也似乎是一个非常强大的内容.

据我所知,DRF不会像Play Framework那样做自己的异步(或非阻塞)框架,但是我对这是否重要也感兴趣.我一直在想的情况是通过Mandrill向用户发送电子邮件 – 我不希望我的API陷入僵局等待Mandrill API来告知电子邮件是否被发送.

因此,我认为这个问题可以总结如下:从客户的角度来看,是否有利于我通过异步/非阻塞框架构建一个API,如在DRF上播放,或者我是否缺少一点?

解决方法 我是一个Django REST框架的贡献者(和用户),所以我的观点偏向于这一点.

Django REST框架是建立在Django上的,它是Web应用程序的同步框架.如果您已经在使用像Django这样的同步框架,那么拥有同步API就不是一个问题了.

现在,只是因为它是同步的,这并不意味着一次只能处理一个请求.大多数正在处理Django应用程序的Web服务器can handle multiple requests,一些主题甚至可以做到这一点somewhat asynchronously across multiple threads.通常这并不是一个问题,因为您的Web服务器通常可以处理许多并发请求,即使其中一些阻塞.当你长久以来,阻止通话你通常不希望在API内完成 – 你应该将它委派给像Celery或Resque这样的后台工作人员.

这不仅仅是Django特有的,许多相同的原理也适用于像Rails和ASP.NET MVC这样的其他同步框架.如果您有长期的请求,您通常应该将工作委派给其他进程,而不是阻止请求.通常使用202响应代码for these cases.

现在,这并不一定意味着异步框架是无用的.在运行时,如Node.Js,大多数框架handle requests asynchronously.在这些语言中使用同步框架是没有意义的,所以大多数库被构建为异步的.

您所选择的内容取决于您已经使用的工具.

总结

以上是内存溢出为你收集整理的为什么要用异步/非阻塞框架构建API?全部内容,希望文章能够帮你解决为什么要用异步/非阻塞框架构建API?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1207482.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-04
下一篇 2022-06-04

发表评论

登录后才能评论

评论列表(0条)

保存