1. 程式人生 > >系統架構進化歷程以及優缺點

系統架構進化歷程以及優缺點

微服務的提出:james Lewis & Martin Fowler 在2014年3月25號在一篇《Microservice》中提出微服務

《Microservice》原文:https://martinfowler.com/articles/microservices.html

微服務是一種架構風格,並具有如下特點:

                                                                        一系列微小服務共同組成

                                                                        跑在自己的程序裡

                                                                        每個服務為獨立的業務開發

                                                                        獨立部署

                                                                        分散式管理

系統架構

系統架構的發展歷程:

                                    ps:本圖來自Dubbo官網

單體架構的優缺點:

優點:容易測試:由於沒有外部依賴,可以在本地完全啟動系統,所以很容易測試。

           容易部署:系統是一個整體,只需要把專案打包,既可以釋出。

缺點:開發效率低:專案是整體架構,程式碼之間相互依賴過於強,開發者之間很難協作,程式碼也容易衝突。

           程式碼難維護:業務程式碼龐大且在一起,很難梳理清晰。

           部署不夠靈活:構建時間長,專案中任意一處修改都需要進行重新打包釋出,浪費時間,資源。

           穩定性不高:專案中任何一個位置出現問題,專案整體崩潰,牽一髮而動全身。

           擴充套件性不夠:專案需要負載均衡時,單體架構的專案很難做到。

前後端分離架構的優缺點:

優點:減輕伺服器壓力:js能夠處理大多情況的資料處理。

           介面友好:後端伺服器出現bug,不會直接顯示到前端頁面。

缺點:如果是 PC 端的站點,需要考慮是否需要強支援 SEO ,前後端分離的架構,很可能需要搜尋引擎的 spider 執行完 js 才能得                        到完整的可收錄的頁面,而“執行 js ”並不是所有搜尋引擎都支援的,此時勢必影響站點的收錄。

分散式架構:

定義:旨在支援應用程式和服務開發,可以利用物理架構由多個自治的處理元素,不共享主記憶體,但通過網路傳送訊息合作

                                                                                                                                                                       ------------Leslie Lamport

微服務架構的基礎框架/元件

服務註冊發現:服務提供方註冊,並將本身的地址以及位元組資訊提供,由服務呼叫方來發現,並正確使用。

服務閘道器(Service Gateway):對外遮蔽後臺的具體實現細節;具有路由功能,能夠將外部請求指向內部具體的微服務;認證,授權,安全,限流等功能。

後端通用服務(也稱中間層服務Middle Tier Service):

前端服務(也稱邊緣服務Edge Service):