Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
支持多个请求-django API后端_Django_Api_Rest_Asynchronous_Django Rest Framework - Fatal编程技术网

支持多个请求-django API后端

支持多个请求-django API后端,django,api,rest,asynchronous,django-rest-framework,Django,Api,Rest,Asynchronous,Django Rest Framework,我目前正在为带有Django和DRF的聊天应用程序构建一个后端API。它基本上处理与MySQL数据库的直接交互,还管理其他重要组件,如身份验证、授权和用户管理。 我们的团队已经构建了一个API微服务,用于在我们的客户端移动应用程序上启用聊天。我们通过node.js上的WebSocket和rabbitMQ来实现这一点 因此,我们把它放到了网上,并且意识到Django后端似乎不支持从聊天API发送的大量请求。在Django应用程序上运行负载测试表明,它最多会减少90%的请求。添加更多连接到负载平衡器

我目前正在为带有Django和DRF的聊天应用程序构建一个后端API。它基本上处理与MySQL数据库的直接交互,还管理其他重要组件,如身份验证、授权和用户管理。 我们的团队已经构建了一个API微服务,用于在我们的客户端移动应用程序上启用聊天。我们通过node.js上的WebSocket和rabbitMQ来实现这一点

因此,我们把它放到了网上,并且意识到Django后端似乎不支持从聊天API发送的大量请求。在Django应用程序上运行负载测试表明,它最多会减少90%的请求。添加更多连接到负载平衡器的服务器也没有改善这种情况。 我认为Django的阻塞特性(实际上是DRF)限制了这一点。但这只是我的直觉,我不确定到底是什么问题


是否有人对如何提高Django API的性能提出了建议。

您是否发现了应用程序中缓慢的部分?如果部署正确,Django项目可以处理巨大的负载。例如,我认为instagram是/曾经是Django应用程序这很可能是基础设施问题(部署环境配置或更低级别的问题),而不是Django问题。作为调查的第一点,您如何知道请求正在被删除?客户端是否能够首先建立到web服务器的TCP连接?您的部署设置是什么样的,您在负载平衡器后面安装的各个应用服务器中如何配置web服务器?非常感谢,Iain。是的,我发现了几个罪犯。所以我们在做一些事情,比如读邮件收据。对于会话中的两个用户,每个客户端都会连续向Django API发出请求,以验证另一方是否已读取消息。当用户(客户端)在线时,就会发生这种情况。还有另外两个类似的组件也是这样工作的。我还试图与我的队友一起量化这一点,以便我了解每个用户每秒发出多少请求。谢谢雷蒙斯。我认为你是对的——基本上就是这样。这是我的设置配置:-我正在执行gunicorn的主管任务。这正在运行7个工作进程并绑定到unix域套接字。-然后,我将Nginx中的上游应用服务器设置为这个套接字-我目前正在运行一个连接到Digital Ocean上的负载平衡器的服务器(要测试)。我有时会加速这个服务器的拷贝,但现在保持在1,以节省成本,因为我们还在开发中**对集装箱运输和所有这些东西来说也是新的,所以我想在永久添加更多之前把它做好servers@DJRamones关于我如何判断请求被丢弃:它们产生了503个错误响应。当时我们无法判断这是来自DjangoAPI还是数据库。我还对进行了负载测试,发现当我每秒触发1K+个请求时,大约90%的请求被丢弃。