SpringCloud分布式開發(fā)
服務(wù)發(fā)現(xiàn)——Netflix Eureka
客服端負載均衡——Netflix Ribbon
斷路器——Netflix Hystrix
服務(wù)網(wǎng)關(guān)——Netflix Zuul
分布式配置——Spring Cloud Config
一個RESTful服務(wù)浑劳,用來定位運行在AWS地區(qū)(Region)中的中間層服務(wù)乐疆。由兩個組件組成:Eureka服務(wù)器和Eureka客戶端。Eureka服務(wù)器用作服務(wù)注冊服務(wù)器祝辣。Eureka客戶端是一個java客戶端路克,用來簡化與服務(wù)器的交互呵燕、作為輪詢負載均衡器拗军,并提供服務(wù)的故障切換支持殊轴。Netflix在其生產(chǎn)環(huán)境中使用的是另外的客戶端钦奋,它提供基于流量座云、資源利用率以及出錯狀態(tài)的加權(quán)負載均衡。
Ribbon付材,主要提供客戶側(cè)的軟件負載均衡算法朦拖。
Ribbon客戶端組件提供一系列完善的配置選項,比如連接超時厌衔、重試璧帝、重試算法等。Ribbon內(nèi)置可插拔富寿、可定制的負載均衡組件睬隶。下面是用到的一些負載均衡策略:
簡單輪詢負載均衡
加權(quán)響應(yīng)時間負載均衡
區(qū)域感知輪詢負載均衡
隨機負載均衡
Ribbon中還包括以下功能:
易于與服務(wù)發(fā)現(xiàn)組件(比如Netflix的Eureka)集成
使用Archaius完成運行時配置
使用JMX暴露運維指標锣夹,使用Servo發(fā)布
多種可插拔的序列化選擇
異步和批處理操作(即將推出)
自動SLA框架(即將推出)
系統(tǒng)管理/指標控制臺(即將推出)
斷路器可以防止一個應(yīng)用程序多次試圖執(zhí)行一個操作,即很可能失敗苏潜,允許它繼續(xù)而不等待故障恢復或者浪費 CPU 周期银萍,而它確定該故障是持久的。斷路器模式也使應(yīng)用程序能夠檢測故障是否已經(jīng)解決恤左。如果問題似乎已經(jīng)得到糾正??贴唇,應(yīng)用程序可以嘗試調(diào)用操作。
斷路器增加了穩(wěn)定性和靈活性飞袋,以一個系統(tǒng)戳气,提供穩(wěn)定性,而系統(tǒng)從故障中恢復巧鸭,并盡量減少此故障的對性能的影響物咳。它可以幫助快速地拒絕對一個操作,即很可能失敗蹄皱,而不是等待操作超時(或者不返回)的請求览闰,以保持系統(tǒng)的響應(yīng)時間。如果斷路器提高每次改變狀態(tài)的時間的事件巷折,該信息可以被用來監(jiān)測由斷路器保護系統(tǒng)的部件的健康狀況压鉴,或以提醒管理員當斷路器跳閘献丑,以在打開狀態(tài)盾戴。
流程圖
類似nginx,反向代理的功能纽绍,不過netflix自己增加了一些配合其他組件的特性署拟。
這個還是靜態(tài)的婉宰,得配合Spring Cloud Bus實現(xiàn)動態(tài)的配置更新。
愿意了解框架技術(shù)或者源碼的朋友直接求求交流分享技術(shù):2042849237
分布式的一些解決方案推穷,有愿意了解的朋友可以找我們團隊探討
更多詳細源碼參考來源:http://minglisoft.cn/technology