我的系统架构看起来与问题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请求?
我的系统体系结构看起来与此处的问题非常相似。我的实现和发布的问题之间的主要区别在于,我将对...
回答您的问题: