RabbitMQ,Flask / fastapi和websockets

问题描述 投票:1回答:1

我的系统架构看起来与问题here中发布的图非常相似。我的实现和发布的问题之间的主要区别在于,我将在Web服务器(使用python)中使用fastapi / flask,在消息传递中使用Rabbitmq。

我的高级伪代码(使用fastAPI)如下:

from fastapi import APIRouter
from starlette.responses import Response
router = APIRouter()

@router.post("/users/{message}")
async def provide_suggestions(message: str, response: Response):
    uuid = generate_uuid(message)
    message_dict = {"uuid": uuid, "data": message}.
    result = await post_message_to_rabbit_mq(message_dict)
    response.status_code = SOME_VALID_HTTP_RESPONSE_CODE # what would this be?

问题1:HTTP响应代码是什么?基本上,Web服务器需要通知客户端一段时间后再返回并检查结果(然后返回建议)。

一旦Web服务器通过Rabbitmq发布消息,工作人员将基于该消息生成相关建议(通过查找数据库)。该消息和uuid一起将重新发布到另一个Rabbitmq消息队列中。现在,Web服务器成为使用者。

问题2:假设Web服务器已注册为出口路径上消息队列的使用者,那么Web服务器是否会在消息队列的单独线程上获取数据?

问题3:客户端和服务器是否可以通过web-sockets异步通信,而不是等待客户端发送的其他HTTP请求?

我的系统体系结构看起来与此处的问题非常相似。我的实现和发布的问题之间的主要区别在于,我将对...

python flask websocket rabbitmq fastapi
1个回答
0
投票

回答您的问题:

© www.soinside.com 2019 - 2024. All rights reserved.