一、微服務
單體架構:
——優點:
1、易於開發:開發的方式簡單,方便運行也容易調試。
2、易於測試。
3、易於部署。
——缺點:
1、項目過於臃腫,維護成本大,出現bug難定位。
2、資源無法隔離:共享一個數據庫,或者一塊內存。
如果一個功能模塊突然訪問量過大,可能影響整個系統的性能。
3、無法靈活擴展:單體系統也可以集羣部署,但是不夠靈活,我明明只是訂單系統遇到了瓶頸,
只需要將訂單模塊水平擴展就行,但現在要將整個系統水平擴展。不靈活!
4、交付週期長:所有功能得一起上線,一起構建,一起部署。
任何一個環節出錯,都可能影響交付。
分佈式的優點與單體應用缺點對立,但是也帶來了一些問題
1.性能,訪問速度受帶寬影響。
2.可靠性,高度依賴網絡。
3.數據一致性:C(一致性)A(可用性)P(分區容錯),cap原理
4.運維成本:一個系統拆成了多個服務,每個服務都得配置,部署,監控,日誌處理
CAP 定理:http://www.ruanyifeng.com/blog/2018/07/cap.html
微服務就是在分佈式的特點上對業務的的一個橫向劃分,拆分成不同模塊對外提供服務。
二.Spring Cloud是什麼?
Spring Cloud是一系列框架的有序集合。它利用Spring Boot的開發便利性巧妙地簡化了分佈式系統基礎設施的開發,如服務發現註冊、配置中心、消息總線、負載均衡、斷路器、數據監控等,都可以用Spring Boot的開發風格做到一鍵啓動和部署。Spring Cloud就像一個老大哥帶了一幫小弟,是一個資源的整合。
三.微服務入門
服務鏈路過程圖:
技術選擇
1.註冊中心
參考文章鏈接:https://blog.csdn.net/forezp/article/details/81040925
整理內容連接:https://www.iamlfc.top/2019/08/25/SpringCloud%E5%AD%A6%E4%B9%A0%E4%B8%80-%E6%9C%8D%E5%8A%A1%E6%B3%A8%E5%86%8C%E5%92%8C%E5%8F%91%E7%8E%B0/
2.服務消費
參考鏈接:https://blog.csdn.net/forezp/article/details/81040965
3.路由網關
zuul:
– 參考連接:https://blog.csdn.net/forezp/article/details/81041012
gateway:
– 參考連接:https://blog.csdn.net/forezp/article/details/85210153
4.配置中心
SpringColud Config:
– 參考鏈接:https://www.cnblogs.com/lfalex0831/p/9206605.html
推薦學習資料
http://xujin.org/categories/%E8%B7%9F%E6%88%91%E5%AD%A6Spring-Cloud/
http://www.itmuch.com/categories/Spring-Cloud/
http://blog.didispace.com/Spring-Cloud%E5%9F%BA%E7%A1%80%E6%95%99%E7%A8%8B/
demo地址:https://github.com/cmevolve/xieexiaodaima/tree/master/%E6%A1%86%E6%9E%B6%E5%AD%A6%E4%B9%A0/springAll/springcloud/springCloud
用途 | 技術 |
---|---|
基礎容器 | spring-boot 2.0.6 |
分佈式服務框架 | Spring cloud F SR3 |
項目構建 | Maven |
註冊中心 | eureka |
網關 | gateway |
服務消費者 | Fegin |
配置中心 | Spring Cloud Config |
…