SpringCloud(1) 架構演進和基礎知識簡介
一、傳統架構演進到分散式架構
簡介:講解單機應用和分散式應用架構演進基礎知識 (畫圖)
高可用 LVS+keepalive
1、單體應用:開發速度慢、啟動時間長、依賴龐大、等等
2、微服務:易開發、理解和維護、獨立的部署和啟動等等
不足:分散式系統(分散式事務問題)、需要管理多個服務(服務治理)
二、微服務基礎知識簡介
微服務核心知識 :閘道器、服務發現註冊、配置中心、鏈路追蹤、負載均衡器、熔斷
1、閘道器:路由轉發 + 過濾器
/api/v1/pruduct/ 商品服務
/api/v1/order/ 訂單服務
/api/v1/user/ 使用者服務
2、服務註冊發現:呼叫和被呼叫方的資訊維護
3、配置中心:管理配置,動態更新 application.properties
4、鏈路追蹤:分析呼叫鏈路耗時
例子:下單-》查詢商品服務獲取商品價格-》查詢使用者資訊-》儲存資料庫
5、負載均衡器:分發負載
6、熔斷:保護自己和被呼叫方
三、常見的微服務框架
簡介:講解常用的微服務框架
consumer: 呼叫方
provider: 被呼叫方
一個介面一般都會充當兩個角色(不是同時充當)
1、dubbo: zookeeper + dubbo + springmvc/springboot
官方地址:http://dubbo.apache.org/#!/?lang=zh-cn
配套
通訊方式:rpc
註冊中心:zookeper/redis
配置中心:diamond
2、springcloud: 全家桶+輕鬆嵌入第三方元件(Netflix 奈飛)
官網:http://projects.spring.io/spring-cloud/
配套
通訊方式:http restful
註冊中心:eruka/consul
配置中心:config
斷路器:hystrix
閘道器:zuul
分散式追蹤系統:sleuth+zipkin
四、舉例:電商專案
1、使用者服務
1)使用者資訊介面
2)登入介面
2、商品服務
1)商品列表
2)商品詳情
3、訂單服務
1)我的訂單
2)下單介面