我有一个REST API,现在我想创建一个仅使用此API和主数据源的网站。系统是分布式的:REST API位于一组计算机上,站点位于另一台计算机上。
我希望有很多负载,所以我希望尽可能提高请求。
我是否需要一些异步HTTP请求库或任何HTTP客户端库都可以使用?
API使用Flask完成,网站也将使用Flask和Jinja作为模板引擎构建。
答案 0 :(得分:2)
您可以使用gevent和Flask从正常的同步库中获取异步I / O.请参阅this question,了解有人获得帮助的示例。
您还可以在gunicorn后面运行Flask,它支持生成多个工作线程(线程,进程或greenlet)以处理并发请求。如果您采用这种方法,Flask将保持完全同步,并且gunicorn将处理创建多个Flask实例以处理并发请求。
答案 1 :(得分:1)
开始简单并使用方式,这似乎很容易为您使用。考虑稍后在需要时进行优化。
如果您每秒有数千个请求,则使用异步库会起到帮助作用。很快你就可能遇到与数据库相关的性能问题(如果你使用它),这是不能通过异步魔法来解决的。
答案 2 :(得分:0)
实际上您的API位于单独的计算机上。即使您使客户端调用异步,它也不会对服务器产生任何影响。通过使您的调用异步,客户端中的线程将不会等待响应。当呼叫是同步/异步时,您的服务器将作出相同的反应。
如果您想让您的呼叫异步,请检查http://stackandqueue.com/?p=57。它使用unirest来同时获取和发布异步调用