當前位置:編程學習大全網 - 編程語言 - SpringCloud入門簡述

SpringCloud入門簡述

微服務,是壹個小型的服務,也是壹種設計理念,將壹個大型繁雜的系統拆分為多個小型的服務,進行獨立部署,這些服務在獨立進程中運行,通過特定的協議進行通信

優點:

缺點:

在服務通信性能上RPC更強,但是Rest更為靈活

SpringCloud是基於SpringBoot實現的微服務框架,為開發人員提供了很多快速構建分布式系統中常見模式的工具,包括配置管理、服務發現、斷路器、智能路由、微代理,控制總線等。

Spring Cloud專註於為典型的用例提供良好的開箱即用體驗,並為其他用例提供擴展性機制。

參考地址:

Eureka是Netflix開發的基於Rest的服務發現框架,SpringCloud基於此進行二次封裝,實現服務的管理。

創建壹個Eureka服務:blogs.com/william-m/p/15991511.html

如果沒有Eureka,如何進行服務之間的調用?

使用Rest進行調用,先將RestTemplate註冊到Bean,然後:

Eureka遵循的是AP原則,Eureka各個節點都是平等的,部分服務節點的下線不會影響正常服務的調用,只要該服務還剩下壹個節點在線就可以進行正常的服務訪問,即保證了服務可用,但是並不能保證查詢到的信息是最新的。Zookeeper的CP原則與之不同,Zookeeper會有壹個master節點來保證壹致性,壹旦master節點掛掉,剩余的節點會重新選舉壹個leader,而選擇的過程需要時間,這期間會使得該服務癱瘓,所以需要滿足高可用的話該情況是不能夠容忍的。

Spring Cloud Ribbon是壹個基於HTTP和TCP的 客戶端負載均衡 工具,基於Netflix Ribbon實現,通過輪詢、隨機等算法選擇壹個可用服務。

目的:將用戶的請求平攤的分配到多個服務上,實現高可用

最大區別:服務清單所存儲的位置

客戶端先發送請求到負載均衡服務器,然後由負載均衡服務器通過負載均衡算法,在眾多可用的服務器之中選擇壹個來處理請求。

客戶端自己維護壹個可用服務器地址列表,在發送請求前先通過負載均衡算法選擇壹個將用來處理本次請求的服務器,然後再直接將請求發送至該服務器。

邏輯時序:RestTemplate發起請求 負載均衡器攔截器攔截 LoadBalanceClient獲取ILoadBalance 獲取服務列表 根據負載均衡器選擇壹個server 發起請求 記錄調用信息

Ribbon基於HTTP和TCP客戶端的負載均衡器可以自己構建HTTP請求,使用RestTemplate發送服務

Feign基於Ribbon進行改進,采用接口的方式,將需要調用的服務的方法定義成抽象方法

Consumer應用

啟動類

為了調用Product應用服務的接口類

Product應用

controller

Hystrix是壹個服務容錯與保護的組件,用於 服務降級 服務熔斷 服務限流 等等,能夠保證在其中壹個服務出現問題的時候,不會出現級聯故障,防止雪崩,提高分布式服務的健壯性。

將某些服務停掉會i這不進行業務處理,釋放資源來維持主要服務的功能。

應對服務雪崩的壹種保險措施,是微服務的鏈路保護機制,是服務降級的壹種特殊處理方式。

為了應對某個服務故障的情況,保證系統的整體可用性,熔斷器會切斷對該服務的請求,返回壹個比較友好的錯誤響應,直到服務恢復正常

熔斷機制的三種狀態:

示例:

熔斷:直接切斷服務的調用

降級:犧牲非核心業務保證核心服務的正常

限流:服務訪問量達到閾值後拒絕多余的調用

Zuul是壹個微服務網關。網關:是壹個網絡系統的前置入口。也就是說要想訪問壹個有網關的網絡系統請求相應的服務,需要先進入網關,然後路由到相應的服務。

通常是組成壹個系統的微服務很多、或者有權限要求時需要用到網關。

Zuul提供壹個過濾器,父類為ZuulFilter,用來過濾代理請求,提供額外的功能邏輯(這點類似於AOP),包括前置過濾、路由後過濾、後置過濾、異常過濾。

ZuulFilter包含的抽象方法:filterType、filterOrder、shouldFilter、run

當微服務眾多的時候,想要管理各個服務的配置時過於繁雜,SpringCloud Config則可以用來對每個微服務的配置進行集中的管理。可以實現權限管控、灰度發布、版本管理、格式檢驗、安全配置等。

作用:

特點:

文章來自blogs.com/william-m/p/16153557.html

  • 上一篇:讓主婦們尖叫的創意廚房小家電!
  • 下一篇:看了這,迫切想知道如何提高我的JS編程能力
  • copyright 2024編程學習大全網