2014-12-06 31 views
2

我試圖建立一個實時的網絡應用程序。如何在應用程序中使用流星和laravel?

主要應用功能是基於meteor.js。(Node.js的MongoDB的)

但我不想讓用戶管理,計費系統(帶),基於laravel靜態頁面(PHP + MYSQL) 。

它們共享相同的用戶系統認證。確切地說,他們都是整個應用程序的一部分。

但我不知道如何結合兩者,特別是數據庫架構。

+0

您可以用蘋果做一個餡餅,然後用意大利辣香腸做一個餡餅。但你不想做一個意大利辣香腸蘋果派。您最好的選擇可能是將OAuth添加到您現有的Laravel應用程序,然後創建一個單獨的Meteor應用程序,將其帳戶系統連接到Laravel應用程序的OAuth流程。 – sbking 2014-12-06 05:19:07

回答

0

對於像這樣的架構似乎沒有什麼書面的。流星和Laravel都還是比較新的。不過,我正在考慮與以下架構完全相同的組合。我意識到我試圖將一塊披薩和一塊牛排(可能會證明它很好吃)相結合。

什麼樣的應用程序會有這種架構?

先是長處和短處(真的很短)。流星很快,並提供了一個良好的客戶端和服務器之間的溝通層。但是它缺少成熟的數據層。 NoSQL db(例如:mongo)缺乏對遷移的適當支持,而其僅僅不如MySQL那樣有效。儘管我確實認爲NoSQL可能會有一個光明的未來,但這對於可靠應用程序來說並不是我的選擇。雖然我確實看到了Meteor的MySQL層,但它們並不像Laravel MySQL層那麼好。

這兩個應用程序都有一個非常好的界面層,它們都很好地記錄。它們都在Unix系統上運行,並且在代碼方面可以很好地擴展。 Laravel和Meteor都是基於事件的。

有了這些知識,應該清楚的是像流行聊天,拍賣和其他活的應用程序應該由Meteor處理。另一方面,結構化複雜/關係數據應由Laravel完成。所以如果應用程序很小,並有一個目標。根據需求堅持Laravel或Meteor,不要試圖將它們結合起來。但是,如果你在一個擁有帶有MySQL數據庫的靜態API的大型項目上工作,而且還需要一個聊天功能(例如Facebook),那麼可以採用更分散的方法。

分佈式雲架構 下面是一些關於分佈式架構的閱讀材料。

Distributed clouds

在我們的用例流星將作爲(我稱之爲)祕書從NoSQL的存儲器中讀取並指示其他應用程序/工人做什麼與它的高效率的工作方式異步。 Laravel將更多地處於處理層,從而實現一致的處理。 Laravel從MySQL數據庫中讀取數據,並將通常API輸出的內容「緩存」到Meteor使用的NoSQL存儲中。該Laravel應用可以接受隊列中的消息,並以HTTP調用響應來自流星應用

秀派:客戶< - >流星< - > MongoDB的< - > Laravel < - > MySQL的

很多項目開始了PHP laravel應用程序,但突然要求實時功能。例如,一個顯示靜態內容的本地IOS/Android應用程序,突然應該可以進行實時聊天。這就是這個架構實際上非常好的地方。這兩個應用程序完全不同,但使用NoSQL存儲或直接API調用密切合作。

雖然他們都可以在同一臺服務器上,但我建議擁有帶1個小流星服務器和1臺Laravel服務器的雲基礎架構。 1個MySQL數據庫服務器和1個NoSQL服務器。每個都可以根據任務類型獨立進行擴展。在這種情況下,例如在週末,Meteor服務器可以縮小,因爲連接的客戶端較少,而Laravel服務器可以擴展以處理強烈的事情。

這個設置也相當多餘。當複雜的Laravel應用程序失敗時,客戶端不會注意到。另一方面,當客戶數量很大時,Laravel只是在不受干擾的情況下繼續工作

相關問題