Spring Boot > Spring Cloud 這幾天剛剛上班,公司用的是Spring Cloud,接觸不多。我得趕快學(xué)起來。 想學(xué)習(xí)就必須得知道什么是微服務(wù),什么是Spring B..."/>
您好,登錄后才能下訂單哦!
這幾天剛剛上班,公司用的是Spring Cloud,接觸不多。我得趕快學(xué)起來。
想學(xué)習(xí)就必須得知道什么是微服務(wù),什么是Spring Boot,什么是Spring Cloud,以及兩者之間有什么關(guān)系?
簡而言之,微服務(wù)架構(gòu)風(fēng)格是一種將單個(gè)應(yīng)用程序作為一套小型服務(wù)開發(fā)的方法,每種應(yīng)用程序都在自己的進(jìn)程中運(yùn)行,并與輕量級機(jī)制(通常是HTTP資源API)進(jìn)行通信。 這些服務(wù)是圍繞業(yè)務(wù)功能構(gòu)建的,可以通過全自動(dòng)部署機(jī)制獨(dú)立部署。 這些服務(wù)的集中管理最少,可以用不同的編程語言編寫,并使用不同的數(shù)據(jù)存儲(chǔ)技術(shù)。系統(tǒng)中的各個(gè)微服務(wù)可被獨(dú)立部署,各個(gè)微服務(wù)之間是松耦合的。每個(gè)微服務(wù)僅關(guān)注于完成一件任務(wù)并很好地完成該任務(wù)。在所有情況下,每個(gè)任務(wù)代表著一個(gè)小的業(yè)務(wù)能力。
在同一范疇內(nèi)比較才有意義:
微服務(wù)架構(gòu) vs. SOA – 兩者都是架構(gòu)風(fēng)格范疇,但其關(guān)注領(lǐng)域與涉及范圍不同。SOA更關(guān)注企業(yè)規(guī)模范圍,微服務(wù)架構(gòu)則更關(guān)注應(yīng)用規(guī)模范圍。
微服務(wù)組件 vs. 服務(wù)組件 – 兩者都是描述業(yè)務(wù)功能的具體實(shí)現(xiàn),其區(qū)別在于粒度不同,此外還有在可管理性、靈活性上的差異。
概念混淆的不恰當(dāng)比較
微服務(wù) vs. SOA – 不恰當(dāng)?shù)谋容^。微服務(wù)是組件范疇,而SOA是一種架構(gòu)設(shè)計(jì)風(fēng)格。因此應(yīng)該比較的是微服務(wù)架構(gòu)與SOA。
微服務(wù) vs. API – 不恰當(dāng)?shù)谋容^。 API是接口,是業(yè)務(wù)功能暴露的一種機(jī)制。微服務(wù)架構(gòu)是用于實(shí)施業(yè)務(wù)功能的組件架構(gòu)。因此直接比較它們是沒有意義的。
微服務(wù) vs. 服務(wù)– 不恰當(dāng)?shù)谋容^?!胺?wù)”在不同的場景下有不同的含義,需要進(jìn)一步澄清其描述的語境,是指服務(wù)實(shí)施、服務(wù)暴露、服務(wù)定義還是其他?微服務(wù)亦是如此,需要有特定語境才可判斷比較是否有意義。
首先得知道一點(diǎn),Spring Boot 不是為了取代 Spring ,Spring Boot 基于 Spring 開發(fā),是為了讓人們更容易的使用 Spring。
Spring Boot簡化了基于Spring的應(yīng)用開發(fā),通過少量的代碼就能創(chuàng)建一個(gè)獨(dú)立的、產(chǎn)品級別的Spring應(yīng)用。 Spring Boot為Spring平臺(tái)及第三方庫提供開箱即用的設(shè)置,這樣你就可以有條不紊地開始。多數(shù)Spring Boot應(yīng)用只需要很少的Spring配置。
Spring Boot是由Pivotal團(tuán)隊(duì)提供的全新框架,其設(shè)計(jì)目的是用來簡化新Spring應(yīng)用的初始搭建以及開發(fā)過程。該框架使用了特定的方式來進(jìn)行配置,從而使開發(fā)人員不再需要定義樣板化的配置。用我的話來理解,就是Spring Boot其實(shí)不是什么新的框架,它默認(rèn)配置了很多框架的使用方式,就像maven整合了所有的jar包,Spring Boot整合了所有的框架(不知道這樣比喻是否合適)。
Spring Boot的核心思想就是約定大于配置,一切自動(dòng)完成。采用Spring Boot可以大大的簡化你的開發(fā)模式,所有你想集成的常用框架,它都有對應(yīng)的組件支持;
Spring Cloud是一系列框架的有序集合。它利用Spring Boot的開發(fā)便利性巧妙地簡化了分布式系統(tǒng)基礎(chǔ)設(shè)施的開發(fā),如服務(wù)發(fā)現(xiàn)注冊、配置中心、消息總線、負(fù)載均衡、斷路器、數(shù)據(jù)監(jiān)控等,都可以用Spring Boot的開發(fā)風(fēng)格做到一鍵啟動(dòng)和部署。Spring并沒有重復(fù)制造輪子,它只是將目前各家公司開發(fā)的比較成熟、經(jīng)得起實(shí)際考驗(yàn)的服務(wù)框架組合起來,通過Spring Boot風(fēng)格進(jìn)行再封裝屏蔽掉了復(fù)雜的配置和實(shí)現(xiàn)原理,最終給開發(fā)者留出了一套簡單易懂、易部署和易維護(hù)的分布式系統(tǒng)開發(fā)工具包。
微服務(wù)是可以獨(dú)立部署、水平擴(kuò)展、獨(dú)立訪問(或者有獨(dú)立的數(shù)據(jù)庫)的服務(wù)單元,Spring Cloud就是這些微服務(wù)的大管家,采用了微服務(wù)這種架構(gòu)之后,項(xiàng)目的數(shù)量會(huì)非常多,Spring Cloud做為大管家就需要提供各種方案來維護(hù)整個(gè)生態(tài)。
Spring Cloud就是一套分布式服務(wù)治理的框架,既然它是一套服務(wù)治理的框架,那么它本身不會(huì)提供具體功能性的操作,更專注于服務(wù)之間的通訊、熔斷、監(jiān)控等。因此就需要很多的組件來支持一套功能
Spring Boot和Spring Cloud的關(guān)系
Spring Boot 是 Spring 的一套快速配置腳手架,可以基于Spring Boot 快速開發(fā)單個(gè)微服務(wù),Spring Cloud是一個(gè)基于Spring Boot實(shí)現(xiàn)的云應(yīng)用開發(fā)工具;Spring Boot專注于快速、方便集成的單個(gè)微服務(wù)個(gè)體,Spring Cloud關(guān)注全局的服務(wù)治理框架;Spring Boot使用了默認(rèn)大于配置的理念,很多集成方案已經(jīng)幫你選擇好了,能不配置就不配置,Spring Cloud很大的一部分是基于Spring Boot來實(shí)現(xiàn),可以不基于Spring Boot嗎?不可以。
Spring Boot可以離開Spring Cloud獨(dú)立使用開發(fā)項(xiàng)目,但是Spring Cloud離不開Spring Boot,屬于依賴的關(guān)系。
歡迎大家關(guān)注公眾號(hào),不定時(shí)干貨,只做有價(jià)值的輸出
作者:Dawnzhang
出處:https://www.cnblogs.com/clwydjgs/
版權(quán):本文版權(quán)歸作者
轉(zhuǎn)載:歡迎轉(zhuǎn)載,但未經(jīng)作者同意,必須保留此段聲明;必須在文章中給出原文連接;否則必究法律責(zé)任
免責(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)容。