網(wǎng)站開發(fā)職業(yè)總結(jié)企業(yè)網(wǎng)站設(shè)計價格
大話Spring Cloud
在Java悠久的歷史長河中(其實(shí)也就十來年),有一個框架自誕生之初就成了Java企業(yè)級開發(fā)領(lǐng)域的弄潮兒,它以開放的姿態(tài)不斷引領(lǐng)著技術(shù)改革(我們管他叫Java領(lǐng)域的“改革開放”),它就是久經(jīng)考驗(yàn)的企業(yè)級開發(fā)框架,改革開放的總設(shè)計師Spring Framework。
如今改革開放的春風(fēng)又吹到了微服務(wù)領(lǐng)域,正所謂想群眾之所想,急群眾之所難,看到碼農(nóng)群眾掙扎在微服務(wù)的泥沼中,這位改革開放的總設(shè)計師坐不住了,它要站出來領(lǐng)導(dǎo)廣大碼農(nóng)階級,堅決打贏這場脫貧攻堅戰(zhàn)!
于是乎,一個新的史詩級框架誕生了,它吸納開源社區(qū)各路優(yōu)秀框架,打包提供了一套最佳業(yè)界實(shí)踐標(biāo)準(zhǔn)的工具包,它就是當(dāng)下微服務(wù)領(lǐng)域的圣經(jīng)——Spring Cloud。
博采眾家之長
盡管Spring Cloud是由Spring Framework直接掛牌的頂級項(xiàng)目,但他并不是由開源社區(qū)原生態(tài)打造的。前面提到過Spring Cloud吸納了很多優(yōu)秀框架,這些項(xiàng)目不光來自于開源社區(qū),也來自于-線企業(yè)
比如Netflix和Alibaba就是兩家對Spring Cloud有突出貢獻(xiàn)的公司這些業(yè)界大廠結(jié)合自身在高并發(fā)高可用領(lǐng)域積累的豐富經(jīng)驗(yàn),所貢獻(xiàn)的組件也是作風(fēng)硬朗能打勝仗。
可以這么說,Spring Cloud是一系列開源技術(shù) (組件)的集合,它基于Spring Boot之,上,將微服務(wù)領(lǐng)域的基礎(chǔ)設(shè)施簡化為一一個個易于部署且配置簡單的組件。如服務(wù)治理、負(fù)載均衡、熔斷降級、配置管理等等分布式應(yīng)用中的場景,都可以借助Spring Cloud提供的組件庫,通過簡單的“注解+幾行配置~的方式應(yīng)用到自己的系統(tǒng)中來。
Spring Cloud各個組件來自于不同公司,在每個業(yè)務(wù)領(lǐng)域甚至還提.供了多個可供選擇的組件,所以時候它是-鍋大雜燴也不為過,但是這鍋爛燉它燒的好吃,各個食材(組件) 之間配合的天衣無縫,呈現(xiàn)了這道微服務(wù)的盛宴。
解決痛點(diǎn)難點(diǎn)
只有你想不到,沒有Spring Cloud做不到(稍微添油加醋了點(diǎn))。Spring Cloud的核心組件直接來自業(yè)界的大型互聯(lián)網(wǎng)公司,可以這么說,它們就是絕對的實(shí)力派,專注于助力各類復(fù)雜業(yè)務(wù)場景,并且這些組件在大型分布式環(huán)境中已經(jīng)證明了自身的高可用和高并發(fā)能力。
目前活躍在Spring Cloud舞臺的有Netflix組件庫和Alibaba組件庫,大家對Alibaba應(yīng)該比較熟悉,但是對Netflix可能不太熟悉(不過經(jīng)??疵绖〉耐瑢W(xué)肯定知道Netflix),它是一家流媒體的超級巨頭,全球最大的收費(fèi)視頻網(wǎng)站。這些業(yè)界巨頭自身有著非常復(fù)雜的在線業(yè)務(wù),所以Spring Cloud提供的組件都是實(shí)實(shí)在在為了解決各類業(yè)務(wù)難點(diǎn)痛點(diǎn)而生的。我這里給大家舉一個例子,每年阿里的雙十一,為了抗住瞬時流量爆發(fā)的場景,必須有一個足夠大心臟的流控措施,那么Sentinel就是基于這個背景之下誕生的組件,如今它被納入了Spring Cloud Alibaba組件庫。
構(gòu)建生態(tài)體系
SpringCloud不是壘磚頭一樣將各類組件攪和在一起使用,而是基于一系列的抽象和改造,在原生組件的基礎(chǔ)上抽象出了一套微服務(wù)的適配框架,讓各個組件可以無縫集成,共同構(gòu)建了一套生態(tài)體系。
舉一個比較恰當(dāng)?shù)睦訋椭蠹依斫?#xff0c;那就是推送配置變更的場景。我們表面上是使用SpringCloudConfig組件來管理配置項(xiàng),但批量推送則依賴于Spring Cloud Bus組件,而Bus底層依賴Spring CloudStream組件,Bus在Stream之上抽象出了一層消息廣播的事件驅(qū)動模型,Stream它本身也是一套對底層消息中間件的抽象,將Kafka和RabbitMQ的交互抽象成了一系列Channel模型。這幾個組件之間甚至根本不用什么繁重的配置,只要把依賴項(xiàng)引入Pom,就開始了合體的過程。