2011-05-24 108 views

回答

10

通常,消息總線(例如RabbitMQ,但不限於此)允許可靠的作業處理隊列。

這對於Web應用程序而言意味着什麼,是隨着需求的增長而擴展您的應用程序,並保持您的UI快速響應。

與其強制用戶在處理作業時等待,他們可以請求處理作業(例如,單擊網頁上的按鈕開始對服務器上的視頻文件進行轉碼),從而將消息發送到你的公共汽車,當後臺服務輪到隊列時,讓後端服務接收它,並且可能會通知用戶工作已經開始。然後,您可以將控制權返回給用戶界面,以便用戶可以繼續使用該應用程序。

在這種情況下,您的Web界面並沒有繁重的工作,而只是在您認爲合適的時候讓用戶能夠看到流程的各個階段(例如,作業可以隨着流程狀態逐步更新數據庫記錄查詢並顯示給您的用戶)。

我會假設任何經歷任何相當流量的網絡應用都會有這種類型的基礎設施。儘管存在不足(網絡故障可能會破壞消息傳遞,更復雜的基礎設施等),但擴展後端的優勢日益明顯。如果您正在使用雲服務,則此類型的基礎架構通過訂閱作業隊列並選取要處理的消息來添加額外的消息處理程序來處理作業很簡單。

相關問題