您好,登錄后才能下訂單哦!
這篇文章主要介紹Java中Spring Cloud框架選型的示例分析,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!
項(xiàng)目采用maven作為軟件包管理工具,Spring boot+Spring Cloud作為項(xiàng)目基礎(chǔ)架構(gòu),設(shè)有配置中心、服務(wù)發(fā)現(xiàn)中心、網(wǎng)關(guān)中心和鏈路追蹤中心以及服務(wù)集群,其中服務(wù)集群之間添加鏈路熔斷和負(fù)載均衡機(jī)制。
當(dāng)然,目前參照了幾個(gè)系統(tǒng)都按照這種邏輯搭建的框架,所以我們大致上也參考了這個(gè)模型。具體如下圖:
這里大概介紹一下,我在實(shí)踐中選用的技術(shù)組件,選用這些技術(shù)沒多少原因,很大程度上考慮到團(tuán)隊(duì)喜好以及后續(xù)維護(hù)的方便,還有就是官方團(tuán)隊(duì)的維護(hù)上考慮。
Maven 翻譯為"專家"、"內(nèi)行",是 Apache 下的一個(gè)純 Java 開發(fā)的開源項(xiàng)目,我主要用來進(jìn)行包管理。老開發(fā)大多都知道如果一個(gè)項(xiàng)目使用了大量的三方包,如果沒有統(tǒng)一的三方包管理就會出現(xiàn)三個(gè)人可能會引用四個(gè)版本的同一個(gè)包,這對于項(xiàng)目協(xié)同來說簡直就是噩夢。所以Maven誕生了,從此Javaer有了一個(gè)進(jìn)行包管理的神器。再次聲明一下哈,maven不只是用來做包管理的,只是我使用的基本想法。當(dāng)然還有編譯、批量測試等功能。
Spring Boot被譽(yù)為是Spring的一個(gè)跨時(shí)代發(fā)明,一度被認(rèn)為是“不能更好了”的技術(shù)。Spring Boot解決了開發(fā)一個(gè)Web網(wǎng)站必須啟動一個(gè)Tomcat或者其他的服務(wù)器才能進(jìn)行調(diào)試的問題;又解決了Spring之前需要大量xml文件配置;Spring Boot集成了很多常見的Bean組件,在開發(fā)過程中只需要設(shè)置對應(yīng)的參數(shù)值就可以了。
Spring Boot創(chuàng)建了Spring Boot maven的pom文件,這個(gè)文件里設(shè)置了大量java三方庫的版本,依賴于一個(gè)Spring Boot的pom文件就可以統(tǒng)一的使用對應(yīng)版本的java三方庫。
Spring Cloud,嗯,怎么說呢。Spring Cloud可以說是一系列框架的有序集合,利用Spring Boot簡化了基礎(chǔ)設(shè)施的開發(fā)。Spring Cloud是實(shí)現(xiàn)微服務(wù)的一個(gè)有力的武器,我們利用Spring Cloud搭建服務(wù)發(fā)現(xiàn)注冊、配置中心、消息總線、負(fù)載均衡、斷路器和數(shù)據(jù)監(jiān)控等。
總而言之,這是一個(gè)很神奇的項(xiàng)目。
Nacos,阿里巴巴又一個(gè)“KPI”產(chǎn)品。最開始的時(shí)候,很多人都說又是阿里的一個(gè)KPI產(chǎn)品。但實(shí)際上Nacos現(xiàn)在成長為業(yè)內(nèi)一個(gè)很強(qiáng)的技術(shù)框架,它集成了服務(wù)發(fā)現(xiàn)、配置管理等功能。
以下是我從nacos官方扒的圖,有興趣的小伙伴可以看看。
Feign的英文是“偽裝、變形”等意思,是一種HTTP調(diào)用框架。它使Http調(diào)用變成了一種接口式的調(diào)用,而不用寫一堆Http請求的代碼。在Spring Cloud中,對Feign進(jìn)行了加強(qiáng),使得在各個(gè)服務(wù)之間可以通過定義Interface來調(diào)用其他服務(wù)的代碼。與此同時(shí),Spring Cloud Feign 集成了Ribbon作為負(fù)載均衡組件,Hystrix 作為鏈路熔斷組件。
具體為什么要使用負(fù)載均衡和鏈路熔斷可以參考該系列的Feign配置篇。
之所以使用鏈路追蹤系統(tǒng),主要是為了跟蹤各服務(wù)之間的調(diào)用信息。跟蹤之后,可以通過鏈路信息確認(rèn)各服務(wù)之間的調(diào)用關(guān)系;可以在發(fā)生錯(cuò)誤的時(shí)候,通過鏈路追蹤定位具體的錯(cuò)誤;可以根據(jù)鏈路信息確認(rèn)服務(wù)之間的負(fù)載是否均衡,是否滿負(fù)荷是否超負(fù)荷等。
而Zipkin正是鏈路追蹤系統(tǒng)中的佼佼者,項(xiàng)目中選型選中了Zipkin,讓我們歡呼吧。
在使用了鏈路追蹤之后,每次都會啟動大量的鏈路數(shù)據(jù),所以就需要一個(gè)數(shù)據(jù)庫,為了方便查找然后選中了ElasticSearch。那么什么是ElasticSearch呢?
暫且拋開官網(wǎng)中的Elastic Stack,因?yàn)槲乙膊恢浪f的是啥。簡單來講,ElasticSearch是一種文檔型的數(shù)據(jù)引擎或者數(shù)據(jù)庫。我們可以通過ElasticSearch實(shí)現(xiàn)全文檢索功能。
項(xiàng)目還集成了Spring Boot Admin,計(jì)劃集成ELK、jwt這些框架。不過業(yè)務(wù)暫時(shí)沒有其他方面的需求,所以暫時(shí)沒有加入其他組件。后續(xù)如有變更會更新到該系列中。
以上是“Java中Spring Cloud框架選型的示例分析”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關(guān)知識,歡迎關(guān)注億速云行業(yè)資訊頻道!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。