2015-01-09 131 views
5

我在Martin Fowler的頁面上看了the article on Microservices,發現它很有趣。現在我計劃構建一個電子商務Web應用程序作爲概念驗證,並且想知道我的概念是否被視爲微服務體系結構。我的概念是否遵循微服務架構?

架構由3個部分組成:

  • 一個基於JavaScript的單頁的應用程序,這將Ajax請求發送到
  • 與REST API,它提要通過調用其他服務收到JSON數據的服務器(我認爲你把這種行爲API網關)
  • 3服務:CatalogProvider,CustomersProvider,CheckoutProvider

對於現在的服務都是API endpoin一個Magento(PHP)Shopsystem的ts。將來,我打算將提供者與其他系統交換。

所以我的問題是:

  • MS被認爲是 '獨立部署'。我明白,在JAVA世界中,我們正在討論一個JAR或WAR文件,但PHP服務如何「獨立部署」?

  • 我的概念是否不遵循MS架構的原則,因爲提供者都是一個大的(Magento)系統的一部分?

謝謝您的閱讀。我很樂意提供任何建議。

回答

9

沒有什麼說你的架構不是因爲你使用magento和PHP而不是MS架構。但是,你必須考慮一些事情:

  • 認爲總是能夠重寫任何語言的任何服務,並部署在整個系統應該繼續工作的地方。

如果你的服務只是轉換/接口與magento非常緊密聯繫,你不能簡單地在java/C#/ ruby​​中簡單地重寫它們,那麼我想你沒有MS架構。

對於PHP可部署的構件,您通常會在您的服務中使用一些打包或版本控制策略。即使PHP中的「部署」通常只是交換一個.php文件的文件夾。而且你不應該在不同的服務之間共享代碼/配置。如果您想採取額外步驟,您甚至可以查看deployment tools for PHP

+0

'如果你的服務只是轉換/接口與magento非常緊密,你不能簡單地在java/C#/ ruby​​中簡單地重寫它們,那麼我想你沒有MS架構。「 - >我沒有實現一個Magento模塊,它擴展了REST API併爲客戶端提供了它期望的數據結構。因此,該服務因此肯定與Magento緊密相連,因爲它使用了它的模型......但我認爲你仍然可以將其視爲MSA,不是嗎? – Rouzbeh

+0

@Rouzbeh,這個線程的響應非常遲,但無論如何,在這裏,因爲所有在這種方法上啓用的服務都是在相同的Magento存儲庫/數據庫中運行的,所以它們不是「可獨立部署的」似乎適合MS架構。另外,例如,訂單服務需要持有客戶參考以說明誰下了訂單。我認爲最小的客戶信息將以其喜好的格式由這個訂單服務單獨保存。這意味着一定程度的異常化,這是我們在採用MS架構時會遇到的問題。 – user132797

1

對於微服務架構有SRP原則。單一響應原則。每個服務都有自己獨特的責任.DB方案也應該分解。導出服務作爲休息在一個單一的應用程序不轉換一個單一的應用程序的微服務應用程序。