用Djang构建的微服务环境中的并发嵌套请求

2024-05-14 19:11:36 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在用Django开发一个微服务体系结构,其中服务通过restfulapi彼此通信。在

来自客户端的请求由服务提供服务,然后服务需要向另一个服务发出新的(嵌套的)HTTP请求,如下图所示,以保持服务之间的解耦。在

enter image description here

在这种情况下,可能会发生两个不同的请求由客户端触发,并由第一个服务同时提供服务。然后,对第二个服务的两个嵌套请求中的一个将保持未服务状态,直到发生503错误(服务不可用)。 服务器似乎无法处理嵌套请求之间的并发性。在

restfulapi是用Django REST框架实现的,嵌套请求是用Python请求库生成的。下面是一个例子:

from rest_framework.views import APIView
import requests

class FirstServiceView(APIView):
    def get(self, request, format=None):

        # Code...

        # The nested requests to the second service
        response = requests.get("http://127.0.0.1:8000/second_service/")

        # Other code...

值得注意的是,这种行为在Django和Apache的开发服务器上都会发生。此外,本例中不涉及数据库上的并发。在


Tags: djangoimport服务器http客户端get状态体系结构

热门问题