国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

目錄
總結(jié)
首頁 Java Java基礎(chǔ) Spring Cloud七大元件是什麼

Spring Cloud七大元件是什麼

Apr 25, 2021 pm 05:43 PM
java spring boot spring cloud

Spring Cloud七大元件:1、Eureka元件,描述了服務(wù)如何進行註冊,註冊到哪裡;2、Ribbon元件;3、Feign元件,一個聲明web服務(wù)客戶端;4、Hystrix元件; 5、Config組件;6、Zuul組件;7、Bus組件。

Spring Cloud七大元件是什麼

本教學(xué)操作環(huán)境:windows7系統(tǒng)、java8版、DELL G3電腦。

Spring Cloud全家桶組件

在介紹Spring Cloud 全家桶之前,首先要介紹一下Netflix ,Netflix 是一個很棒的公司,在Spring Cloud專案中佔著重要的作用,Netflix 公司提供了包括Eureka、Hystrix、Zuul、Archaius等在內(nèi)的許多元件,在微服務(wù)架構(gòu)中至關(guān)重要,Spring在Netflix 的基礎(chǔ)上,封裝了一系列的元件,命名為:Spring Cloud Eureka、Spring Cloud Hystrix、Spring Cloud Zuul等,下邊對各個元件進行分別得介紹:

(1)Spring Cloud Eureka

#我們使用微服務(wù),微服務(wù)的本質(zhì)還是各種API介面的調(diào)用,那麼我們怎麼產(chǎn)生這些介面、產(chǎn)生了這些介面之後如何進行調(diào)用那?如何進行管理哪?

答案就是Spring Cloud Eureka,我們可以將自己定義的API 介面註冊到Spring Cloud Eureka上,Eureka負責(zé)服務(wù)的註冊於發(fā)現(xiàn),如果學(xué)習(xí)過Zookeeper的話,就可以很好的理解,Eureka的角色和Zookeeper的角色差不多,都是服務(wù)的註冊和發(fā)現(xiàn),構(gòu)成Eureka體系的包括:服務(wù)註冊中心、服務(wù)提供者、服務(wù)消費者。

Spring Cloud七大元件是什麼

上圖中描述了(圖片來自網(wǎng)路):

1、兩臺Eureka服務(wù)註冊中心構(gòu)成的服務(wù)註冊中心的主從複製叢集;
2、然後服務(wù)提供者向註冊中心進行註冊、續(xù)約、離線服務(wù)等;
3、服務(wù)消費者Eureka註冊中心拉去服務(wù)清單並維護在本地(這也是客戶端發(fā)現(xiàn)模式的機制體現(xiàn)?。?;
4、然後服務(wù)消費者根據(jù)從Eureka服務(wù)註冊中心取得的服務(wù)清單選取一個服務(wù)提供者進行消費服務(wù)。

(2)Spring Cloud Ribbon

在上Spring Cloud Eureka描述了服務(wù)如何進行註冊,註冊到哪裡,服務(wù)消費者如何取得服務(wù)生產(chǎn)者的服務(wù)訊息,但是Eureka只是維護了服務(wù)生產(chǎn)者、註冊中心、服務(wù)消費者三者之間的關(guān)係,真正的服務(wù)消費者調(diào)用服務(wù)生產(chǎn)者提供的數(shù)據(jù)是透過Spring Cloud Ribbon來實現(xiàn)的。

在(1)中提到了服務(wù)消費者是將服務(wù)從註冊中心獲取服務(wù)生產(chǎn)者的服務(wù)清單並維護在本地的,這種客戶端發(fā)現(xiàn)模式的方式是服務(wù)消費者選擇合適的節(jié)點進行存取服務(wù)生產(chǎn)者提供的數(shù)據(jù),這種選擇合適節(jié)點的過程就是Spring Cloud Ribbon完成的。

Spring Cloud Ribbon客戶端負載平衡器由此而來。

(3)Spring Cloud Feign

上述(1)、(2)中我們已經(jīng)使用最簡單的方式實現(xiàn)了服務(wù)的註冊發(fā)現(xiàn)和服務(wù)的調(diào)用操作,如果具體的使用Ribbon呼叫服務(wù)的話,你就可以感受到使用Ribbon的方式還是有一些複雜,因此Spring Cloud Feign應(yīng)運而生。

Spring Cloud Feign 是一個聲明web服務(wù)客戶端,這使得編寫Web服務(wù)客戶端更容易,使用Feign 建立一個介面並對它進行註解,它具有可插拔的註解支援包括Feign註解與JAX-RS註解,F(xiàn)eign也支援可插拔的編碼器與解碼器,Spring Cloud 增加了對Spring MVC的註解,Spring Web 預(yù)設(shè)使用了HttpMessageConverters, Spring Cloud 整合Ribbon 和Eureka 提供的負載平衡的HTTP客戶端Feign 。

簡單的可以理解為:Spring Cloud Feign 的出現(xiàn)使得Eureka和Ribbon的使用更為簡單。

(4)Spring Cloud Hystrix

我們在(1)、(2)、(3)中知道了使用Eureka進行服務(wù)的註冊和發(fā)現(xiàn),使用Ribbon實作服務(wù)的負載平衡調(diào)用,也知道了使用Feign可以簡化我們的編碼。但是,這些還不足以實現(xiàn)一個高可用的微服務(wù)架構(gòu)。

例如:當(dāng)有一個服務(wù)出現(xiàn)了故障,而服務(wù)的呼叫方不知道服務(wù)出現(xiàn)故障,若此時呼叫放的請求不斷的增加,最後就會等待故障的依賴方對應(yīng)形成任務(wù)的積壓,最終導(dǎo)致自身服務(wù)的癱瘓。

Spring Cloud Hystrix正是為了解決這種情況的,防止對某一故障服務(wù)持續(xù)進行存取。 Hystrix的意思是:斷路器,斷路器本身是一種開關(guān)裝置,用於我們家庭的電路保護,防止電流的過載,當(dāng)線路中有電器發(fā)生短路的時候,斷路器能夠及時切換故障的電器,防止發(fā)生過載、發(fā)熱甚至起火等嚴重後果。

(5)Spring Cloud Config

對於微服務(wù)還不是很多的時候,各種服務(wù)的配置管理起來還相對簡單,但是當(dāng)成百上千的微服務(wù)節(jié)點起來的時候,服務(wù)配置的管理變得會變得複雜。

分散式系統(tǒng)中,由於服務(wù)數(shù)量龐大,為了方便服務(wù)設(shè)定檔統(tǒng)一管理,即時更新,所以需要分散式設(shè)定中心元件。在Spring Cloud中,有分散式配置中心元件Spring Cloud Config ,它支援配置服務(wù)放在配置服務(wù)的記憶體中(即本地),也支援放在遠端Git倉庫。在Cpring Cloud Config 元件中,分成兩個角色,一個是Config Server,二是Config Client。

Config Server用於配置屬性的存儲,儲存的位置可以為Git倉庫、SVN倉庫、本機檔案等,Config Client用於服務(wù)屬性的讀取。

Spring Cloud七大元件是什麼

(6)Spring Cloud Zuul

#我們使用Spring Cloud Netflix中的Eureka實現(xiàn)了服務(wù)註冊中心以及服務(wù)註冊與發(fā)現(xiàn);而服務(wù)間透過Ribbon或Feign實現(xiàn)服務(wù)的消費以及平衡負載;透過Spring Cloud Config實現(xiàn)了應(yīng)用多環(huán)境的外部化配置以及版本管理。為了讓服務(wù)群集更為健壯,使用Hystrix的融斷機制來避免在微服務(wù)架構(gòu)中個別服務(wù)出現(xiàn)異常時所造成的故障蔓延。

Spring Cloud七大元件是什麼

先來說說這樣架構(gòu)需要做的一些事兒以及存在的不足:

1、首先,破壞了服務(wù)無狀態(tài)特點。為了確保對外服務(wù)的安全性,我們需要實現(xiàn)對服務(wù)存取的權(quán)限控制,而開放服務(wù)的權(quán)限控制機制將會貫穿並污染整個開放服務(wù)的業(yè)務(wù)邏輯,這會帶來的最直接問題是,破壞了服務(wù)叢集中REST API無狀態(tài)的特性。從具體開發(fā)和測試的角度來說,在工作中除了要考慮實際的業(yè)務(wù)邏輯之外,還需要額外可續(xù)對介面存取的控制處理。

2、其次,無法直接重複使用既有介面。當(dāng)我們需要對一個即有的集群內(nèi)存取接口,實現(xiàn)外部服務(wù)訪問時,我們不得不透過在原有接口上增加校驗邏輯,或增加一個代理調(diào)用來實現(xiàn)權(quán)限控制,無法直接復(fù)用原有的接口。
面對類似上面的問題,我們要如何解決呢?以下進入本文的正題:服務(wù)網(wǎng)關(guān)!

為了解決上面這些問題,我們需要將權(quán)限控制這樣的東西從我們的服務(wù)單元中抽離出去,而最適合這些邏輯的地方就是處於對外訪問最前端的地方,我們需要一個更強大一些的平衡負載器,它就是本文將來介紹的:服務(wù)閘道。

服務(wù)閘道是微服務(wù)架構(gòu)中一個不可或缺的部分。透過服務(wù)閘道統(tǒng)一向外系統(tǒng)提供REST API的過程中,除了具備服務(wù)路由、平衡負載功能之外,它還具備了權(quán)限控制等功能。 Spring Cloud Netflix中的Zuul就擔(dān)任了這樣的一個角色,為微服務(wù)架構(gòu)提供了前門保護的作用,同時將權(quán)限控制這些較重的非業(yè)務(wù)邏輯內(nèi)容遷移到服務(wù)路由層面,使得服務(wù)集群主體能夠具備更高的可重複使用性和可測試性。

(7)Spring Cloud Bus

在(5)Spring Cloud Config中,我們知道的設(shè)定檔可以透過Config Server儲存到Git等地方,透過Config Client進行讀取,但是我們的設(shè)定檔不可能是一直不變的,當(dāng)我們的設(shè)定檔放生變化的時候如何進行更新哪?

一種最簡單的方式重新一下Config Client進行重新獲取,但Spring Cloud絕對不會讓你這樣做的,Spring Cloud Bus正是提供一種操作使得我們在不關(guān)閉服務(wù)的情況下更新我們的配置。

Spring Cloud Bus官方意義:訊息總線。

當(dāng)然動態(tài)更新服務(wù)設(shè)定只是訊息匯流排的一個用處,還有很多其他用途。

Spring Cloud七大元件是什麼

總結(jié)

Spring Cloud 的元件還不止這些,透過上邊的口水話的介紹,應(yīng)該可以大致有一定的了解,但是每一個組件的功能遠不止上述介紹的那些,每一個組件還有很多其他的功能點,這裡的介紹希望能夠帶大家入個門,不要對微服務(wù)這個這麼大的概念有所畏懼。

更多程式相關(guān)知識,請造訪:程式設(shè)計影片! !

以上是Spring Cloud七大元件是什麼的詳細內(nèi)容。更多資訊請關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

本網(wǎng)站聲明
本文內(nèi)容由網(wǎng)友自願投稿,版權(quán)歸原作者所有。本站不承擔(dān)相應(yīng)的法律責(zé)任。如發(fā)現(xiàn)涉嫌抄襲或侵權(quán)的內(nèi)容,請聯(lián)絡(luò)admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅(qū)動的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Laravel 教程
1600
29
PHP教程
1502
276
如何使用JDBC處理Java的交易? 如何使用JDBC處理Java的交易? Aug 02, 2025 pm 12:29 PM

要正確處理JDBC事務(wù),必須先關(guān)閉自動提交模式,再執(zhí)行多個操作,最後根據(jù)結(jié)果提交或回滾;1.調(diào)用conn.setAutoCommit(false)以開始事務(wù);2.執(zhí)行多個SQL操作,如INSERT和UPDATE;3.若所有操作成功則調(diào)用conn.commit(),若發(fā)生異常則調(diào)用conn.rollback()確保數(shù)據(jù)一致性;同時應(yīng)使用try-with-resources管理資源,妥善處理異常並關(guān)閉連接,避免連接洩漏;此外建議使用連接池、設(shè)置保存點實現(xiàn)部分回滾,並保持事務(wù)盡可能短以提升性能。

了解Java虛擬機(JVM)內(nèi)部 了解Java虛擬機(JVM)內(nèi)部 Aug 01, 2025 am 06:31 AM

TheJVMenablesJava’s"writeonce,runanywhere"capabilitybyexecutingbytecodethroughfourmaincomponents:1.TheClassLoaderSubsystemloads,links,andinitializes.classfilesusingbootstrap,extension,andapplicationclassloaders,ensuringsecureandlazyclassloa

如何使用Java的日曆? 如何使用Java的日曆? Aug 02, 2025 am 02:38 AM

使用java.time包中的類替代舊的Date和Calendar類;2.通過LocalDate、LocalDateTime和LocalTime獲取當(dāng)前日期時間;3.使用of()方法創(chuàng)建特定日期時間;4.利用plus/minus方法不可變地增減時間;5.使用ZonedDateTime和ZoneId處理時區(qū);6.通過DateTimeFormatter格式化和解析日期字符串;7.必要時通過Instant與舊日期類型兼容;現(xiàn)代Java中日期處理應(yīng)優(yōu)先使用java.timeAPI,它提供了清晰、不可變且線

比較Java框架:Spring Boot vs Quarkus vs Micronaut 比較Java框架:Spring Boot vs Quarkus vs Micronaut Aug 04, 2025 pm 12:48 PM

前形式攝取,quarkusandmicronautleaddueTocile timeProcessingandGraalvSupport,withquarkusoftenpernperforminglightbetterine nosserless notelless centarios.2。

垃圾收集如何在Java工作? 垃圾收集如何在Java工作? Aug 02, 2025 pm 01:55 PM

Java的垃圾回收(GC)是自動管理內(nèi)存的機制,通過回收不可達對象釋放堆內(nèi)存,減少內(nèi)存洩漏風(fēng)險。 1.GC從根對象(如棧變量、活動線程、靜態(tài)字段等)出發(fā)判斷對象可達性,無法到達的對像被標記為垃圾。 2.基於標記-清除算法,標記所有可達對象,清除未標記對象。 3.採用分代收集策略:新生代(Eden、S0、S1)頻繁執(zhí)行MinorGC;老年代執(zhí)行較少但耗時較長的MajorGC;Metaspace存儲類元數(shù)據(jù)。 4.JVM提供多種GC器:SerialGC適用於小型應(yīng)用;ParallelGC提升吞吐量;CMS降

了解網(wǎng)絡(luò)端口和防火牆 了解網(wǎng)絡(luò)端口和防火牆 Aug 01, 2025 am 06:40 AM

NetworkPortSandFireWallsworkTogetHertoEnableCommunication whereSeringSecurity.1.NetWorkPortSareVirtualendPointSnumbered0-655 35,with-Well-with-Newonportslike80(HTTP),443(https),22(SSH)和25(smtp)sindiessingspefificservices.2.portsoperateervertcp(可靠,c

以身作則,解釋說明 以身作則,解釋說明 Aug 02, 2025 am 06:26 AM

defer用於在函數(shù)返回前執(zhí)行指定操作,如清理資源;參數(shù)在defer時立即求值,函數(shù)按後進先出(LIFO)順序執(zhí)行;1.多個defer按聲明逆序執(zhí)行;2.常用於文件關(guān)閉等安全清理;3.可修改命名返回值;4.即使發(fā)生panic也會執(zhí)行,適合用於recover;5.避免在循環(huán)中濫用defer,防止資源洩漏;正確使用可提升代碼安全性和可讀性。

Java並發(fā)公用事業(yè):執(zhí)行人員服務(wù)和叉/加入 Java並發(fā)公用事業(yè):執(zhí)行人員服務(wù)和叉/加入 Aug 03, 2025 am 01:54 AM

ExecutorService適用於獨立任務(wù)的異步執(zhí)行,如I/O操作或定時任務(wù),使用線程池管理並發(fā),通過submit提交Runnable或Callable任務(wù),並用Future獲取結(jié)果,需注意無界隊列風(fēng)險和顯式關(guān)閉線程池;2.Fork/Join框架專為可拆分的CPU密集型任務(wù)設(shè)計,基於分治法和工作竊取算法,通過RecursiveTask或RecursiveAction實現(xiàn)任務(wù)遞歸拆分,由ForkJoinPool調(diào)度執(zhí)行,適合大數(shù)組求和、排序等場景,需合理設(shè)置拆分閾值避免開銷;3.選擇依據(jù):獨立任

See all articles