真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

如何正確使用SpringCloud?【下】-創(chuàng)新互聯(lián)

4. Spring Cloud 微服務(wù)全家桶有哪些?

除了常用組件之外,Spring Cloud 還集成了微服務(wù)全家桶,開箱即用:

創(chuàng)新互聯(lián)主營(yíng)江孜網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營(yíng)網(wǎng)站建設(shè)方案,重慶APP開發(fā)公司,江孜h5微信小程序搭建,江孜網(wǎng)站營(yíng)銷推廣歡迎江孜等地區(qū)企業(yè)咨詢
  • 服務(wù)注冊(cè)發(fā)現(xiàn)類,包括:Eureka、Consul、Zookeeper、Etcd 等。服務(wù)注冊(cè):每個(gè)微服務(wù)組件都向注冊(cè)中心登記自己提供的服務(wù),包括服務(wù)的主機(jī)、端口號(hào)、版本號(hào)、通訊協(xié)議等信息。注冊(cè)中心按照服務(wù)類型分類組織服務(wù)清單,同時(shí)以心跳檢測(cè)的方式監(jiān)測(cè)清單中服務(wù)是否可用,若不可用需要從服務(wù)清單中剔除,以達(dá)到排除故障服務(wù)的效果。服務(wù)發(fā)現(xiàn):在服務(wù)治理框架下,服務(wù)間的調(diào)用不再通過具體的實(shí)例地址來實(shí)現(xiàn),而是通過服務(wù)名發(fā)起請(qǐng)求調(diào)用實(shí)現(xiàn)。服務(wù)調(diào)用方通過服務(wù)名從注冊(cè)中心的服務(wù)清單中獲取服務(wù)實(shí)例的列表清單,通過指定的負(fù)載均衡策略取出一個(gè)服務(wù)實(shí)例位置來進(jìn)行服務(wù)調(diào)用。

  • 服務(wù)調(diào)用框架類,包括:Ribbon、Feign 等。客戶端負(fù)載均衡,將負(fù)載均衡邏輯集成到消費(fèi)方,消費(fèi)方從注冊(cè)中心獲知服務(wù)有哪些實(shí)例可用,然后再按照某種策略從這些地址中選擇一個(gè)服務(wù)實(shí)例進(jìn)行訪問。

  • 服務(wù)容錯(cuò)組件類,包括:Hystrix 等。服務(wù)熔斷:某個(gè)目標(biāo)服務(wù)不可用或大量訪問超時(shí),系統(tǒng)將斷開該服務(wù)的調(diào)用,對(duì)后續(xù)的調(diào)用請(qǐng)求,系統(tǒng)不再繼續(xù)轉(zhuǎn)發(fā)至此服務(wù),直接返回失敗應(yīng)答,從而快速地釋放資源;如果目標(biāo)服務(wù)情況好轉(zhuǎn),則恢復(fù)調(diào)用。服務(wù)降級(jí):在應(yīng)急屏蔽或服務(wù)熔斷情況下,直接返回本地缺省的應(yīng)答。

  • 統(tǒng)一配置中心類,包括:Spring Cloud Config、Spring Cloud Bus 等。在服務(wù)構(gòu)建階段,配合構(gòu)建流水線,為服務(wù)軟件包或鏡像提供配置;在服務(wù)運(yùn)維階段,動(dòng)態(tài)調(diào)整服務(wù)配置,滿足運(yùn)維的靈活性需求;在服務(wù)開發(fā)階段,提供配置API將配置外置化,供其他系統(tǒng)調(diào)用。

  • 服務(wù)網(wǎng)關(guān)代理類,包括:Zuul、Spring Cloud Gateway 等。主要提供服務(wù)路由功能,即接收消費(fèi)方的所有請(qǐng)求,按照某種策略將請(qǐng)求轉(zhuǎn)發(fā)至服務(wù)提供方。同時(shí),在服務(wù)網(wǎng)關(guān)中完成一系列橫切面的功能,例如:權(quán)限校驗(yàn)、請(qǐng)求計(jì)量、流量控制、服務(wù)質(zhì)量、請(qǐng)求管理、響應(yīng)管理、版本管理等。

  • 調(diào)用鏈路監(jiān)測(cè)類,包括:Spring Cloud Sleuth,封裝了 Dapper、Zipkin 和 HTrace 等。微服務(wù)架構(gòu)下組件的數(shù)量眾多,一個(gè)業(yè)務(wù)請(qǐng)求可能需要調(diào)用多個(gè)服務(wù),調(diào)用的復(fù)雜性決定了錯(cuò)誤和異常難以定位。我們需要知道每個(gè)請(qǐng)求到底有哪些服務(wù)參與,調(diào)用順序是怎么樣的,從而清楚每個(gè)調(diào)用步驟,出現(xiàn)問題也能很快定位。

通常我們會(huì)采用 Eureka 作為服務(wù)注冊(cè)中心,實(shí)現(xiàn)服務(wù)注冊(cè)與發(fā)現(xiàn);通過 Ribbon 和 Feign 實(shí)現(xiàn)服務(wù)的消費(fèi)以及客戶端負(fù)載均衡;通過 Spring Cloud Config 實(shí)現(xiàn)應(yīng)用不同環(huán)境的外部化配置以及版本管理。為了讓服務(wù)集群更為健壯,借助 Hystrix 的融斷機(jī)制來避免微服務(wù)架構(gòu)中個(gè)別服務(wù)出現(xiàn)異常時(shí)引起故障蔓延和雪崩。服務(wù)網(wǎng)關(guān) Zuul 為微服務(wù)架構(gòu)門戶,將權(quán)限控制、計(jì)量計(jì)費(fèi)等較重的非業(yè)務(wù)邏輯內(nèi)容遷移到服務(wù)路由層面,使得服務(wù)集群主體能夠具備更高的可復(fù)用性和可測(cè)試性。

5. Spring Cloud 如何融合 DevOps?

接下來,我們來了解一下 Spring Cloud 在與 DevOps 融合方面可以做哪些事情,它是如何讓應(yīng)用持續(xù)交付更加快捷的?我們都知道,DevOps 打造了一套持續(xù)交付的流程,包括:開發(fā)、編譯、測(cè)試、發(fā)布、運(yùn)營(yíng)等節(jié)點(diǎn)。如何讓應(yīng)用更順暢地通過上述各個(gè)節(jié)點(diǎn)呢?Spring Cloud 可以在每個(gè)研發(fā)節(jié)點(diǎn)上做一些配合和優(yōu)化:

  • 開發(fā)環(huán)節(jié),我們大家應(yīng)該都試用過 Spring Initializer 創(chuàng)建過 Spring Boot 項(xiàng)目工程,除此之外我們還可以借助 Maven Archetype 來快速生成項(xiàng)目工程。Archetype 是 Maven 工程的模板工具包,一個(gè) Archetype 定義了某種類型項(xiàng)目的基本骨架,借助它盡可能快地給用戶提供示例工程。
  • 測(cè)試環(huán)節(jié),微服務(wù)通常對(duì)外提供 RESTful API,供各種類型客戶端調(diào)用,而以往我們需要借助文檔來記錄這些 API 信息,以便其他人員查閱和測(cè)試。如果 API 發(fā)生了改變,那我們就需要同步更新文檔,這會(huì)降低持續(xù)交付的效率,而 Swagger 可以幫我們自動(dòng)生成 API 在線文檔,與代碼實(shí)現(xiàn)保持同步。在此基礎(chǔ)上,我們還可以對(duì) API 進(jìn)行自動(dòng)化測(cè)試。通過 Spring Boot 集成 Swagger,讓接口測(cè)試變得更加自動(dòng)化。
  • 發(fā)布環(huán)節(jié),使用 Spring Boot 開發(fā)的項(xiàng)目,可以嵌入應(yīng)用服務(wù)器 Jetty、Tomcat 等,最適合發(fā)布成 Docker 鏡像。我們可以提供制作鏡像的 Dockerfile 模板,不再使用 Docker Maven 插件,而是在當(dāng)前項(xiàng)目的根目錄下新建一個(gè) Dockerfile 文件,代碼編寫完了之后,用戶只需要修改一些參數(shù),直接手動(dòng)執(zhí)行命令將應(yīng)用打成鏡像,這樣就不用深入學(xué)習(xí)容器相關(guān)技術(shù)了。
  • 運(yùn)營(yíng)環(huán)節(jié),我們可以接入統(tǒng)一配置中心、日志云、全鏈路追蹤等平臺(tái),方便問題的定位解決。

6. Spring Cloud 如何適配云基礎(chǔ)設(shè)施?

剛才我們已經(jīng)詳細(xì)介紹了 Spring Cloud 在開發(fā)框架、服務(wù)集成和融合 DevOps 等方面的內(nèi)容,接下來我們看看 Spring Cloud 在適配云平臺(tái)方面可以做哪些事情。通常為了讓各種云計(jì)算技術(shù)棧對(duì)應(yīng)用開發(fā)者透明,降低應(yīng)用上云的難度,我們需要適配虛擬機(jī)、容器等不同類型的云基礎(chǔ)設(shè)施。

虛擬機(jī)是物理機(jī)的抽象,包括操作系統(tǒng)、內(nèi)存和存儲(chǔ)等,在制作 VM 鏡像的時(shí)候可以按需安裝軟件,例如:WEB服務(wù)器和數(shù)據(jù)庫(kù)等,這些軟件也會(huì)出現(xiàn)在以該鏡像啟動(dòng)的虛擬機(jī)中,VM 與它所在的主機(jī),以及主機(jī)上其他 VM 相互隔離。容器在系統(tǒng)中只需要代碼運(yùn)行庫(kù)環(huán)境所需的空間即可,同一個(gè)操作系統(tǒng)上的容器共享主機(jī)內(nèi)核。由于實(shí)現(xiàn)原理不同,運(yùn)行虛擬機(jī)和容器時(shí)所需的資源也不同。虛擬機(jī)本質(zhì)上是一個(gè)完整的計(jì)算機(jī),比容器需要更多的資源,而容器只是操作系統(tǒng)的一部分。一般容器集群資源密集度較低,因此在單個(gè)服務(wù)器上運(yùn)行多容器要比在單個(gè)服務(wù)器上運(yùn)行多VM更適合。

那我們的應(yīng)用適合部署在哪種基礎(chǔ)設(shè)施上呢?通常公共應(yīng)用適合采用虛擬機(jī)部署,例如:消息隊(duì)列、注冊(cè)中心、數(shù)據(jù)庫(kù)等等,這類應(yīng)用對(duì)運(yùn)行資源要求比較高,本身沒有太多個(gè)組件構(gòu)成;業(yè)務(wù)應(yīng)用適合采用容器部署,我們可以將業(yè)務(wù)應(yīng)用拆解成大量職責(zé)單一的微服務(wù)組件,每個(gè)組件對(duì)資源要求相對(duì)確定,而且在不同訪問量下需要彈性伸縮。

因此,我們 DevOps 系統(tǒng)需要抽象出操作不同基礎(chǔ)設(shè)施的管理接口,基于這些管理接口實(shí)現(xiàn)應(yīng)用生命周期管理、服務(wù)治理等功能,這塊可以借鑒國(guó)外廠商指定了一個(gè)云應(yīng)用管理標(biāo)準(zhǔn) CAMP(Cloud Application Management for Platform),它定義了應(yīng)用構(gòu)建、運(yùn)行、管理、監(jiān)控和更新等API,以及資源模型和交互協(xié)議等。??

7. Spring Cloud 填空式應(yīng)用開發(fā)模式

在單個(gè)微服務(wù)構(gòu)建上,Spring 已經(jīng)從展示層、領(lǐng)域?qū)雍蛿?shù)據(jù)源層給我們提供了豐富的組件,我們只需要關(guān)注業(yè)務(wù)邏輯代碼的編寫;在服務(wù)集成上,Spring Cloud 已經(jīng)提供了微服務(wù)全家桶,我們只需要引用這些服務(wù),不需要自行搭建這些公共服務(wù);在對(duì)接 DevOps 和 云基礎(chǔ)設(shè)施上,我們可以做一些優(yōu)化和適配。在它的支持下,我們可以更加輕松地?fù)肀⒎?wù)、DevOps 和云計(jì)算,更好地應(yīng)對(duì)新技術(shù)挑戰(zhàn)。遵循分工協(xié)作的理念,Spring Cloud 給我們提供了一種填空式的開發(fā)模式,在這種開發(fā)模式下,我們只需要聚焦業(yè)務(wù)和用戶,從而以更快地迭代速度打磨出優(yōu)秀的產(chǎn)品。

8. 總結(jié)

Spring 家族變得越來越龐大,包括 Spring Framework、Spring Boot、Spring Cloud 等,如果我們對(duì)它沒有一個(gè)全局的認(rèn)知,那我們很容易迷失在技術(shù)細(xì)節(jié)當(dāng)中,也用不好這款產(chǎn)品。本文是作者參與公司微服務(wù)框架研發(fā)過程中積累的經(jīng)驗(yàn)認(rèn)知,可以作為 Spring Cloud 知識(shí)體系的索引,后續(xù)可以根據(jù)它深入學(xué)習(xí)某個(gè)特性。

本文主要價(jià)值是幫助大家梳理出 Spring Cloud 相關(guān)的知識(shí)框架,也就是我們常說的全局視角或者上帝視角。有了這個(gè)框架之后,我們可以根據(jù)自己的需要按圖索驥找相關(guān)節(jié)點(diǎn)的資料來研究學(xué)習(xí),不至于陷入細(xì)節(jié)找不到方向。當(dāng)然,考慮到我們每個(gè)人的工作學(xué)習(xí)情況不同,平時(shí)遇到的問題也不同,本文內(nèi)容無(wú)法覆蓋所有人遇到的問題,歡迎大家留言提問,也歡迎關(guān)注「 IT老兵哥 」交流互動(dòng),謝謝!

本系列其他文章索引如下:

  • 如何正確使用 Spring Cloud?【上】請(qǐng)?zhí)砑渔溄用枋?/li>

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。


文章標(biāo)題:如何正確使用SpringCloud?【下】-創(chuàng)新互聯(lián)
分享地址:http://weahome.cn/article/ppgeg.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部