什麼是微服務
微服務是用一組小服務構建的乙個應用,服務執行在不同的程序中,服務之間通過輕量的通訊機制進行互動,並且服務可以通過自動化部署方式獨立部署。正因為微服務架構中,服務之間是相互獨立的,所以不同的服務可以使用不同的語言來開發,或者根據業務的需求使用不同型別的資料庫。
優點1、服務解耦
將原有的巨大的單體應用拆分為多個獨立的微服務,使得每個服務更專注於自己的業務,滿足高內聚低耦合的設計原則。比如將電商服務差費為使用者服務、賬戶服務、商品服務、購物車服務、訂單服務等。
2、獨立的開發環境
將應用拆分為獨立的微服務,服務之間彼此隔離,通過輕量級的通訊機制(比如:dubbo)進行互動,使得開發時無需關注具體的開發環境,只需要協商好通訊機制即可。
3、獨立的部署環境
微服務擁有獨立的開發環境,因此需要根據各自的開發環境規劃部署環境,對於訪問量大的服務可以增加服務的部署數量,訪問量小的服務適當的減少部署數量。
4、更高的擴充套件性
基於服務的獨立性,服務之間的耦合性降低,無論從功能上,還是架構上,我們都可以進行更為靈活的擴充套件,而不影響其他服務。
缺點1、通訊機制的不標準問題
微服務之間相互獨立,但是服務間的互動需要依賴規範的通訊機制,沒有規範的通訊機制作為橋梁,服務間互動將變得非常複雜。保證規範的通訊機制,是微服務的前提。
2、事務一致性問題
單體應用通過資料庫事務保證一致性,拆分為微服務後,會形成分布式處理的業務,進而就會產生分布式事務一致性問題。分布式系統的事務一致性本身就是乙個技術難題,目前沒有一種很簡單很完美的方案能夠應對所有場景。分布式系統的乙個難點就是因為「網路通訊的不可靠」,只能通過「確認機制」、「重試機制」、「補償機制」等各方面來解決一些問題。在綜合考慮可用性、效能、實現複雜度等各方面的情況上,比較好的選擇是「非同步確保最終一致性」,只是具體實現方式上有一些差異。
3、服務間的依賴變得複雜
需要根據業務的重要性進行系統梳理,定義出關鍵業務和非關鍵業務;梳理服務呼叫的主要路徑,明確強弱依賴、限流、降級規則等。服務治理就是基於以上規則進行的,否則無法進行系統運維或管理。比如非關鍵業務被關鍵業務所依賴,會導致非關鍵業務變成關鍵業務,服務鏈中就會出現「木桶效應」,即整個服務質量由最差的那個服務所決定。
資料庫也需要做相應的隔離:避免非關鍵業務把資料庫拖死,進而導致全站不可用。不允許直接讀取對方的資料庫進行系統互動,只允許通過服務介面進行系統互動。這也是微服務的要求:拆分服務和相應資料庫。
應避免服務間的迴圈呼叫,如果產生迴圈引用,需要通過架構層面解決迴圈問題,避免因迴圈引用導致的系統奔潰問題。同時要對介面進行降級、限流控制,以應對系統的高併發。
4、微服務運維變得複雜
微服務的架構一般會包含基礎層、中介軟體層、應用層、接入層、安全層,同時需要有相應的團隊負責各層的運維。各層之間有比較明確的職責,共同支撐著整個系統的執行。一旦某個環節出現問題,整個系統就會像 「多公尺諾骨牌」一樣倒下。因此需要統一的運維平台,實時監控服務呼叫鏈路,及時發現和定位問題。而建立統一的運維平台的成本和難度是相當之大的,目前也只有幾家網際網路大公司擁有這種能力。
5、系統監控變得複雜
對系統的監控依賴於系統的呼叫鏈路,鏈路中包含:http請求、服務間呼叫、訊息佇列、資料庫、nosql、執行緒間呼叫等,如何將監控整個鏈路將變得非常困難,可能需要修改各中介軟體的請求資料報。
6、系統測試變得複雜
由於服務的依賴變得複雜,在進行系統測試時,要考慮服務間強弱依賴、降級、限流等問題。在進行壓測時要考慮依賴的服務的效能。在製造測試場景時應充分考慮各服務的資料量,避免出現測試誤差。
分布式微服務的優缺點對比
優點 提公升開發交流,每個服務足夠內聚,足夠小,容易理解 服務獨立測試 部署 公升級 發布 按需定製的dfx,資源利用率,每個服務可以各自進行x擴充套件和z擴充套件,而且,每個服務可以根據自己的需要部署到合適的硬體伺服器上 每個服務按 需要選擇ha的模式,選擇接受服務的例項個數 容易擴大開發團隊,可...
一 B S,C S架構的優缺點
1 b s架構的優點 具有分布性特點,可以隨時隨地進行查詢,瀏覽等業務處理 業務擴充套件簡單方便,通過增加網頁即可增加伺服器功能 維護簡單方便,只需要改變網頁,即可實現所有使用者的同步更新 開發簡單,共享性強。2 b s架構的缺點 在跨瀏覽器上b s架構不盡如人意 表現要達到c s程式的程度要花費不...
B S架構與C S架構的優缺點
在這個資訊急劇膨脹的社會,我們不得不說人類正進入乙個嶄新的時代,那就是資訊時代。資訊時代的乙個主要而顯著的特徵就是計算機網路的應用。計算機網路從最初的集中式計算,經過了client server階段 有兩層c s和三層c s 已發展到目前最流行的 browser server計算模式。其中頗具爭論和...