本文原創,原文地址爲:http://www.cnblogs.com/fengzheng/p/5847441.html html
SOA和微服務究竟是什麼關係?前端
說實話,我確實不明白SOA和微服務到底有什麼本質上的區別,二者說到底都是對外提供接口的一種架構設計方式。我倒以爲微服務其實就是隨着互聯網的發展,複雜的平臺、業務的出現,致使SOA架構向更細粒度、更經過化程度發展,就成了所謂的微服務了。以這種說法作爲根據,我以爲SOA與微服務的區別在於以下幾個方面:後端
爲何要使用微服務?微信
技術爲業務而生,架構也爲業務而出現,固然SOA和微服務也是由於業務的發展而出現。出現SOA和微服務框架與業務的發展、平臺的壯大密不可分,下面借用dubbo的網站架構發展圖和說明:架構
平臺隨着業務的發展從 All in One 環境就能夠知足業務需求(以Java來講,可能只是一兩個war包就解決了);發展到須要拆分多個應用,而且採用MVC的方式分離先後端,加快開發效率;在發展到服務愈來愈多,不得不將一些核心或共用的服務拆分出來,其實發展到此階段,若是服務拆分的足夠精細,而且獨立運行,我以爲就能夠將之理解爲一個微服務了。框架
理想中的微服務架構分佈式
沒有什麼東西是完美的,網站架構也是這樣的,只有「比以前好一點」的架構或「目前最好的實現方式」,不存在理想中的架構,那麼理想中微服務架構應該是怎麼樣的呢,我以爲至少應該有以下幾個特色:ide
固然,這只是其中能想到的幾點,實際環境中用到的微服務框架有可能會根據實際業務需求優化出更加個性化的功能,也可能有些功能是不須要的。仍是那句話,架構是服務於業務的,能快速方便的知足業務需求的架構纔是好的架構,纔是好的微服務架構。微服務
歡迎關注公衆號「gushidefengzheng」古時的風箏優化
還能夠加入 Java 微信討論羣(若是二維碼過時:請加微信:fengdezitai001 ,備註:cnblogs):
以上只是我的理解,將本身的理解寫出,以備本身查看。
也許我說的並必定對,也許我說的全是錯的。