本文淺談只是對我本身初期認識這spring cloud的一個筆記。nginx
微服務是一種架構風格和一種應對業務的架構策略。實現這種的技術方式不少。本文主要說spring cloud。git
spring cloud主要包括一下幾個組件:web
1,eureka 註冊中心。算法
1)一個eureka服務也是客戶端,能夠本身註冊本身,也能夠相互註冊造成高可用集羣。spring
2)eureka是客戶端發現服務,客服端本身過濾,和選擇負載均衡策略。bootstrap
3)eureka與註冊服務器保持通訊是經過心跳檢測機制。跨域
2,ribbon負載均衡器,三個方法核心。服務器
1)獲取全部服務列表。架構
2)rule。選擇服務器規則(默認輪詢)app
3)監聽可用服務列表
3,通信方式。
1)restTempte 請求
2)feign 請求。
4,config 統一配置中心。
1)config-server從遠端git服務器拉取配置到本地的git.
2) 調用端config-client,在註冊中心獲取config-server服務。
注意把application.yml改爲bootstrap.yml。
3)獲取方式 ,看日誌或者文檔(lable/name-dev.yml)
5,bus動態配置刷新。用於config自動刷新。
1)config-server和config-client配置bus和MQ。
2) 遠端git服務配置 webhook回調bus.
3)使用就在pom.xml配置bus的maven。
6,zuul服務網管。
1)性能比nginx差。
2)路由+過濾器 =zuul
3) 核心是一系列的過濾器。
前置(pre)
後置(post)
路由(Route)
錯誤(Error)
4)限流(RateLimiter)令牌算法,放在fiter優先級最高。也能夠配合nginx分流用。
5)能夠鑑權和統一跨域配置(nginx也能夠作跨域)。
7,hystrix服務容錯。服務之間調用會有各類問題。這個組件用在全部調用方。
1)爲服務器提供容錯保護。在資源不夠或者業務壓力大的時候使用優先核心服務。主要四點做用
服務降級
依賴隔離(線程池隔離)
服務熔斷
監控(hystrix-dashboard)
2)使用:
a,經過hystrixCommand註解指定請求。
b,fallbavkMethed實現降級後的實現邏輯。
3) 超時降級默認1秒。全部要根據具體業務,和調用鏈具體配置。
4)服務熔斷主要四個配置。
設置熔斷爲true
請求數(統計單位)
熔斷時間(這段時間請求都執行fallback)
錯誤百分比
5)dashboard監控要配合使用。監控熔斷,界面監控。
8,dashboard服務監控界面。給hystrix提供界面監控。
9,sleuth鏈路監控。主要是惟一標識對應一個請求,和一個請求的服務。
1,日誌打印惟一請求標識。
2,配置把數據推向zipkin
3,抽樣百分比(開發環境設置爲1)
10,zipkin鏈路監控可視化。
1,主要界面可視化查看鏈路調用狀況。
2,使用的時候,通常pom.xml配置zipkin,包含了sleuth。
*******************************
由於spring cloud仍是有點巨大,東西比較多。建議根據業務須要團隊人數才採用這個架構。