在Web应用程序中使用像RabbitMQ这样的消息?

时间:2011-05-24 00:03:54

标签: message-queue rabbitmq amqp

我想了解什么是scenario / usecases / RabbitMQ之类的消息可以帮助消费者Web应用程序。

是否有任何具体资源需要学习?

目前哪些网络应用程序正在使用此类消息传递方案?

2 个答案:

答案 0 :(得分:11)

通常,消息总线(例如RabbitMQ,但不限于此)允许可靠的作业处理队列。

对于Web应用程序而言,这对您来说意味着能够随着需求的增长扩展您的应用程序并保持您的UI快速响应。

不是强迫用户在处理作业时等待,而是可以请求处理作业(例如,单击网页上的按钮以开始转码服务器上的视频文件),该消息会向您发送消息总线,让后端服务在队列中出现时接收它,并且可能通知用户工作已经/将要开始。然后,您可以将控制权返回给UI,以便用户可以继续使用该应用程序。

在这种情况下,您的Web界面无需繁重工作,只需让用户可以根据您的需要查看流程的各个阶段(例如,作业可以使用您可以查询的进程状态逐步更新数据库记录并显示给您的用户)。

我认为任何遇到大量流量的Web应用程序都会有这种类型的基础架构。虽然存在缺点(网络故障可能会破坏消息传递,更复杂的基础设施等),但扩展后端的优势也越来越明显。如果您正在使用云服务,这种类型的基础架构可以通过订阅作业队列并仅选择要处理的消息来添加额外的消息处理程序来处理您的作业。

答案 1 :(得分:7)

我刚刚进行了Google搜索,并提出了以下建议:

这应该让你开始,至少。