2011-08-24 52 views
0

什麼是創建大型網站骨幹的「最佳」方式?包含服務的Webstack佈局(SOA)

目前我們的網頁由許多不同的應用程序組成,如博客wordpress,購物車和其他不基於服務的非互用軟件。我們想改變這一點。

在我看來,基於服務的方法聽起來很有前途,我們網站提供的每個功能都由一個或多個服務(例如REST或SOAP)提供支持。那麼棧看起來是這樣的:

  1. Web服務器(Apache的+ PHP)從服務
  2. 服務的提供商,其提供的功能(REST,SOAP)
  3. 內的每個所消耗的數據的HTML渲染服務,例如mysql數據庫,solr搜索實例等。

這個概念有沒有真正的缺陷?

第1層和第2層之間進行通信的「最佳」方式是什麼?

有沒有關於此主題的任何來源(書籍,會談等)?

UPDATE1:

要優化我的問題,這裏是我們的目標:

用戶應該能夠釋(博客)的文章,管理訂閱電子報,搜索我們的產品,配置產品,購買,評價和評論,提交問題(和回答他人)等。基本上是一個網上商店,許多附加功能適合我們的業務。這些功能應互相融合,並提供已有軟件無法提供的附加功能。

當然,我們可以開始在PHP中用一個框架(如symfony)對一個數據庫編寫everthing,並且它可以用於10個同時使用的用戶。但是如果我們的用戶基礎增長超過普通服務器的容量,我們需要擴展我們的應用程序呢?

如果我們「添加」與不同服務(可以緩存,分片和分離,如果需要)通信的更多(相同)Web服務器,或者爲我們隨時添加的功能添加其他服務,

希望這有助於使我的問題更加交代:-)

+0

我懷疑即使是一個編碼不好的PHP/MySQL應用程序也適用於10個以上的併發用戶。如果你知道如何正確地優化數據庫(主鍵等)和你的PHP(APC或memcached),你將能夠利用更多的體面服務器。 –

回答

0

您可以使用REST或SOAP的用戶可能需要實時更新數據的應用程序。但對於傳統博客或購物車等簡單服務,基於休息的服務可能是一種矯枉過正的行爲。

如果你想實現一個基於休息的系統,你可以實現某種基於休息的框架。有許多可用的和爲php的隱形框架是你可以研究的東西。

但總的來說,您的問題需要一些更多的解釋,因爲它目前的形式很難找到目前運行的應用程序的類型以及準確地執行的操作。

更新1:

從你更新的問題,我不覺得有什麼特別可以強迫你使用休息或肥皂。你提到的所有功能都是平常的,如果你想要擴展你的應用程序,你可以使用memcache和eaccelerator,並將你的應用程序移動到amazon ec2,在那裏你可以設置你的服務器來隨時擴展。

您可能在這裏困惑了很多。出於興趣,你每天得到多少點擊?