ribbon 負載均衡
hystrix 熔斷器
feign
gateway 閘道器
config 分布式配置中心
bus 服務匯流排
spring cloud體系技術綜合應用概覽
第二步:將服務註冊到eureka中。
第三部:eureka負責記錄服務,把服務儲存,例如:http://localhost:9091
第四步:客戶消費端從eureka中拉取服務列表。
第五步:如何進行拉取,是基於負載均衡,減少了服務端壓力。
第六步:例項化服務定期的向eureka傳送心跳,表示自己存活著,若是沒有定期傳送心跳,eureka會把其進行剔除服務。
將user-service服務註冊到user-service,一般情況下在yml是一般配置register-with-eureka: false,將false改為true,這樣多個user-service就能發現物件,然後進行呼叫,但重要的一點是,同一臺電腦要修改埠,不同的電腦修改埠即可。
負載均衡是一種演算法,作用是,可以通過演算法有效的控制http和tcp客服端的行為。
若是user-service實現了集群,ribbon通過演算法進行拉取服務,演算法例如,一般隨機,輪詢。
hystrix是乙個延遲的容錯庫,用於隔離訪問遠端服務,防止出現聯機失敗。
hystrix如何解決雪崩效應:
執行緒隔離:hystrix為每個依賴服務呼叫分配乙個小的執行緒池,如果執行緒池已滿呼叫將被立即拒絕,預設不採用排隊,加速 失敗判定時間。
服務降級:使用者的請求將不再直接訪問服務,而是通過執行緒池中的空閒執行緒來訪問服務,如果執行緒池已滿,或者請求超 時,則會進行降級處理。
服務降級雖然會導致請求失敗,但是不會導致阻塞,而且最多會影響這個依賴服務對應的執行緒池中的資源,對其它服 務沒有響應。
服務降級,一般有兩種情況,一種是訪問失敗次數過多,一種執行緒池已滿。
熔斷器流程
closed:關閉狀態(斷路器關閉),所有請求都正常訪問。
open:開啟狀態(斷路器開啟),所有請求都會被降級。
hystrix會對請求情況計數,當一定時間內失敗請求百 分比達到閾值,則觸發熔斷,斷路器會完全開啟。預設失敗比例的閾值是50%,請求次數少不低於20次。
half open:半開狀態,不是永久的,斷路器開啟後會進入休眠時間(預設是5s)。隨後斷路器會自動進入半開 狀態。此時會釋放部分請求通過,若這些請求都是健康的,則會關閉斷路器,否則繼續保持開啟,再次進行休 眠計。
feign也叫偽裝:feign可以吧rest請求進行隱藏,偽裝成springmvc和controller一樣,不用自己再去拼接url和引數一切都交給feign去做就可以了。
feign可以配置feign內建ribbon配置項和hystrix熔斷的fallback配置。
負載均衡,服務熔斷,請求服務,日誌級別,都可以通過配置項feign中開啟使用,大大簡化了**的重複性。
spring cloud gateway的核心就是一系列的過濾器,可以將客戶端的請求**到不同的伺服器。
gateway作為閘道器其中有乙個重要功能,就是實現請求的鑑權。這個動作往往是通過閘道器提供的過濾器來實現的。
gateway加入後的框架
作用:過濾器和路由。
路由:路由資訊的組成:由乙個id,乙個目的url,一組斷言工廠,一組filter組成。如果路由斷言為真,說明請求url和配置路由匹配。
斷言:spring cloud gateway中的斷言函式輸入型別是spring5.0框架中的serverwebexchange。spring cloud gateway的斷言函式允許開發者去定義匹配來自於http request中的任何 資訊比如請求頭和引數。
**過濾器:**乙個標準spring webfilter。spring cloud gateway中的filter分為兩種型別的filter,分別 是gateway filter和global filter。過濾器filter將會對請求和響應進行修改處理。
過濾器又分為兩種
**區域性過濾器:**通過 spring.cloud.gateway.routes.filters 配置在具體路由下,只作用在當前路由 上;自帶的過濾器都可以配置或者自定義按照自帶過濾器的方式。如果配置 spring.cloud.gateway.default-filters 上會對所有路由生效也算是全域性的過濾器;但是這些過濾器 的實現上都是要實現gatewayfilte***ctory介面。
**全域性過濾器:**不需要在配置檔案中配置,作用在所有的路由上;實現 globalfilter 介面即可。
在分布式系統中,由於服務的數量非常多,配置檔案分散在不同的微服務專案中,管理不方便。為了方便配置檔案集中管理,需要分布式配置中心元件。
config它支援配置檔案放在配置服務的本地,也支援放在遠端git倉(hithub,git)。
作用是:在不重啟微服務的情況下更新配置檔案。
bus是輕量級的訊息**,將分布式的節點連線起來,可以用於廣播配置檔案的更改或者服務的監控管理。也就是訊息匯流排可以為微服務做監控,也可以實現程式之間的相互通訊。
spring cloud bus可選的訊息**有 rabbitmq和kafks。
差多就這麼多元件了,總結的不太太好多見諒喲!!!
第一次發文
建立乙個自定義列表 如何建立乙個註腳 注釋也是必不可少的 katex數學公式 新的甘特圖功能,豐富你的文章 uml 圖表 flowchart流程圖 匯出與匯入 第一次使用,還在摸索中。笨手笨腳 的小白。啊哈哈。你好!這是你第一次使用markdown編輯器所展示的歡迎頁。如果你想學習如何使用markd...
整理一下第一次CTF(web 雜項)
第一次做題,知道差距在哪了,被打的落花流水,片甲不留,總之非常失敗吧,只做題不整理的都是耍流氓,改變耍流氓。這道題考察的是sql約束攻擊,在bugku中遇到過,當時做的時候沒想到,知識還是不夠全面。這個部落格講的比較詳細,其中也有bugku中的題目 sql約束攻擊總結 開啟看到有16張,我就聯想到了...
記錄一下第一次寫部落格
目的 從畢業到現在2年多,好像沒有什麼自己的底蘊,不止一次懷疑自己是不是真的適合程式設計師這條路又找不到適合自己的,但回頭望望仔細一想,好像也會那麼一點點。身邊的程式設計師們好像都有自己的部落格,他們善於總結,善於對新的技術歸納整理成文,而我好像卻沒有這麼樣能力,所以有這個部落格的目的就是把自己平常...