gpt4 book ai didi

http - 使用异步队列连接 http 请求/响应模型

转载 作者:可可西里 更新时间:2023-11-01 15:12:30 24 4
gpt4 key购买 nike

将同步 http 请求/响应模型与基于异步队列的模型连接起来的好方法是什么?

当用户的 HTTP 请求到来时,它会生成一个进入队列的工作请求(在本例中为 beanstalkd)。其中一名工作人员拿起请求,进行工作并准备响应。

队列模型不是请求/响应——只有请求,没有响应。所以问题是,我们如何才能最好地将响应返回到 HTTP 世界并返回给用户?

想法:

  1. Beanstalkd 支持轻量级主题或队列(他们称之为管)。我们可以为每个请求创建一个管道,让工作人员在该管道上创建一条消息,然后让 http 进程在管道上等待响应。不太喜欢这个,因为它有 apache 进程占用内存。

  2. 让 http 客户端轮询响应。用户的初始 HTTP 请求启动队列中的作业并立即返回。客户端(用户的浏览器)定期轮询以获取响应。在后端,worker 将其响应放入 memcached,我们将 nginx 连接到 memcached,因此轮询是轻量级的。

  3. 使用 Comet .与第二个选项类似,但使用更高级的 http 通信来避免轮询。

我倾向于 2,因为它很容易而且众所周知(我还没有使用过 cometd )。我猜可能还有一个我没有想到的更明显的模型。你怎么看?

最佳答案

这是 how to implement request-response efficiently on JMS这可能会有帮助(尽管以 Java/JMS 为中心)。一般的想法是为每个客户端/线程创建一个临时队列,然后使用 correlationIDs 将请求与回复等相关联。

关于http - 使用异步队列连接 http 请求/响应模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/444271/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com