国产AV激情无码久久,精品国产YW在线观看,亚洲国产欧美日韩欧美2018,中文字幕一区二区三区在线不卡

軟件架構

2015-03-20 19:08   來源: 互聯網

本系統軟件采用良好可擴展的微服務架構,功能可獨立發布、配置、部署、運行和測試,支持進一步需求和功能在架構中的良好集成,

具體的技術架構圖如下所示:

圖片.png 

技術架構圖

1. Nacos服務注冊中心設計

采用Nacos作為注冊中心和配置中心,Nacos 提供了一組簡單易用的特性集,幫助您快速實現動態服務發現、服務配置、服務元數據及流量管理。

2. Spring Cloud Gateway網關框架

采用Spring Cloud Gateway網關控制框架,Spring Cloud Gateway是Spring Cloud官方推出的第二代網關框架,取代Zuul網關。網關作為流量的,在微服務系統中有著非常作用,網關常見的功能有路由轉發、權限校驗、限流控制等作用。

SpringCloud Gateway功能特征如下:

(1) 基于Spring Framework 5, Project Reactor 和 Spring Boot 2.0 進行構建;

(2) 動態路由:能夠匹配任何請求屬性;

(3) 集成 Spring Cloud 服務發現功能;

(4) 可以對路由指定 Predicate(斷言)和 Filter(過濾器);

(5) 易于編寫的 Predicate(斷言)和 Filter(過濾器);

(6) 集成Hystrix的斷路器功能;

(7) 請求限流功能;

(8) 支持路徑重寫。

3. Ribbon負載均衡框架

采用Ribbon解決客戶端負載均衡問題,Ribbon是Netflix發布的開源項目,主要功能是提供客戶端的軟件負載均衡算法,Ribbon客戶端組件提供一系列完善的配置項如連接超時,重試等解決方案,Ribbon的負載均衡算法有:

(1) RoundRobinRule:輪詢;

(2) RandomRule:隨機;

(3) AvailabilityFilteringRule:會先過濾掉由于多次訪問故障而處于斷路器跳閘狀態的服務,還有并發的連接數量超過閾值的服務,然后對剩余的服務列表按照輪詢策略進行訪問;

(4) WeightedResponseTimeRule:根據平均響應時間計算所有服務的權重,響應時間越快服務權重越大被選中的概率越高。剛啟動時如果統計信息不足,則使用RoundRobinRule策略,等統計信息足夠,會切換到WeightedResponseTimeRule

(5) RetryRule:先按照RoundRobinRule的策略獲取服務,如果獲取服務失敗則在指定時間內會進行重試,獲取可用的服務;

(6) BestAvailableRule:會先過濾掉由于多次訪問故障而處于斷路器跳閘狀態的服務,然后選擇一個并發量最小的服務;

(7) ZoneAvoidanceRule:默認規則,復合判斷server所在區域的性能和server的可用性選擇服務器。

4. Hystrix延遲容錯框架

采用Hystrix框架來處理分布式系統的延遲和容錯情況,在分布式系統里,許多依賴不可避免的會調用失敗,比如超時、異常等,Hystrix能夠保證在一個依賴出問題的情況下,不會導致整體服務失敗,避免級聯故障,以提高分布式系統的彈性。Hystrix的主要功能:

(1) 服務降級:整體資源不夠了,忍痛將某些服務先關掉,帶服務正常后,再開啟;

(2) 服務熔斷機制是應對雪崩效應的一種微服務鏈路保護機制,當扇出鏈路的某個微服務不可用或者響應時間太長時,會進行服務的降級,進而熔斷該節點微服務的調用,快速返回"錯誤"的響應信息。當檢測到該節點微服務調用響應正常后恢復調用鏈路。在SpringCloud框架里熔斷機制通過Hystrix實現。Hystrix會監控微服務間調用的狀況,當失敗的調用到一定閾值,缺省是5秒內20次調用失敗就會啟動熔斷機制。

(3) 接近實時的監控:Hystrix提供了準實時的調用監控(Hystrix Dashboard),Hystrix會持續地記錄所有通過Hystrix發起的請求的執行信息,并以統計報表和圖形的形式展示給用戶,包括每秒執行多少請求多少成功,多少失敗等。

 


責任編輯:介介
分享到:
0
【慎重聲明】凡本站未注明來源為"大眾時報網"的所有作品,均轉載、編譯或摘編自其它媒體,轉載、編譯或摘編的目的在于傳遞更多信息,并不代表本站贊同其觀點和對其真實性負責。如因作品內容、版權和其他問題需要同本網聯系的,請在30日內進行!
網站地圖 關于我們 免責聲明 投訴建議 sitemap

未經許可任何人不得復制和鏡像,如有發現追究法律責任 粵ICP備2020138440號

<tfoot id="mjdss"><nobr id="mjdss"></nobr></tfoot>
    1. <ruby id="mjdss"><div id="mjdss"></div></ruby>
      <tr id="mjdss"></tr>