什麼是微服務

單體應用
業務通常是通過部署一個 WAR 包到 Tomcat 中,然後啓動 Tomcat,監聽某個端口即可對外提供服務。

單體應用優點:
方便調試,代碼都在一起;
沒有分佈式開銷,所有服務都在本地容器內;
中小型項目可以快速迭代,不需要太多資源

單體應用容易造成的問題:
版本管理難:當項目規模變大時,代碼容易產生衝突。
穩定性差:局部服務有問題,可能會影響整體;
可維護性差:規模擴大複雜性直線上升,造成系統不易理解;
可擴展性差:無法滿足高併發下對應用的要求,不利於較高利用率的橫向擴展;
可複用性差:服務被打包在應用中,功能不易複用;
靈活性差:服務不容易靈活調配、升降級等。
 

服務化

用通俗的話來講,服務化就是把傳統的單機應用中通過 JAR 包依賴產生的本地方法調用,改造成通過 RPC 接口產生的遠程方法調用

1. 優點
易於開發和維護:一個微服務只會關注一個特定的業務功能,所以業務清晰、代碼量較少。開發和維護單個微服務相對簡單。
單個微服務啓動較快
局部修改容易部署:單體應用只要有修改,就得重新部署整個應用。微服務解決了這樣的問題。一般來說,對某個微服務進行修改,只需要重新部署這個服務即可。
技術棧不受限制:在微服務架構中,可以結合項目業務及團隊的特點,合理的選擇技術棧。
按需伸縮:可根據需求,實現細粒度的擴展。
2. 缺點
運維要求高:更多的服務意味着要投入更多的運維。
分佈式固有的複雜性:使用微服務構建的是分佈式系統。對於一個分佈式系統,系統容錯、網絡延遲、分佈式事務等都會帶來巨大的問題。
接口調整成本高:微服務之間通過接口進行通信。如果修改某一個微服務的API,可能所有用到這個接口的微服務都需要進行調整。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章