1. 程式人生 > >微服務(MSA) 和 面向服務架構(SOA) 的區別和聯絡

微服務(MSA) 和 面向服務架構(SOA) 的區別和聯絡

文章目錄

微服務(MSA) 和 面向服務架構(SOA) 的區別和聯絡


1、相似之處

1、都是面向服務
2、都是基於HTTP協議

2、區別和聯絡

傳統的SOA 一般是大而全的單塊架構,MSA 是很分散的服務。
一般情況下,SOA需要對整個系統進行規範約束,但是MSA的每個服務都可以有自己的開發語言和開發方式,靈活性比SOA更高。

2.1、基於SOA的架構

1、易於部署,只需要扔war包就可以了
2、易於伸縮,只需要在負載均衡下部署應用的拷貝即可
3、擁有較為龐大的程式碼庫,在理解業務時,會造成困擾
4、當專案隨著時間的變化越來越大的時候,IDE的速度會變慢
5、Web容器超載,應用變大時,Web容器的啟動時間變長
6、在持續部署上存在問題,當你只需要更新某一個元件時,必須重新部署整個應用
7、伸縮性不好,單塊架構只能在一個維度伸縮
8、難以調整開發規模
9、需要對一個技術棧長期投入,比如使用Java,那麼脫離JVM,Java的開發環境就不能給專案開發元件,並且,專案的遷移也受限於語言和框架層面,或者面臨技術升級時,在某些情況下不得不重寫整個應用

2.2、基於微服務的架構

在優點上
1、每個微服務都相對較小
2、易於開發者理解
3、IDE反應更快,開發更搞笑
4、Web 容器啟動更快
5、每個服務可以獨立開發,部署
6、易於伸縮開發組織架構
7、提升故障隔離
8、消除了單一技術棧的長期投入

在缺點上
1、需要分散式系統發額外複雜度
2、測試更加困難
3、實現跨服務的用例需要開發者之間的細緻協作
4、生產環境的部署複雜度增加
5、更大的記憶體開銷