Spring核心技術(shù)與產(chǎn)品理念剖析【下】-創(chuàng)新互聯(lián)

  • 3. Spring Cloud 蝶變重生

    創(chuàng)新互聯(lián)公司專注于安塞網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗。 熱誠為您提供安塞營銷型網(wǎng)站建設(shè),安塞網(wǎng)站制作、安塞網(wǎng)頁設(shè)計、安塞網(wǎng)站官網(wǎng)定制、微信小程序服務(wù),打造安塞網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供安塞網(wǎng)站排名全網(wǎng)營銷落地服務(wù)。

Spring 框架的升級演進都是圍繞分層架構(gòu)進行的,從簡單到復(fù)雜,再回到簡單的過程。如果我們沒有經(jīng)歷過 Spring 最開始繁瑣的配置,然后一步步精簡,就根本體會不到為什么會有 Spring Boot。俗話說,亂世造英雄。在新舊時代交替階段,原來統(tǒng)治世界的舊秩序正在慢慢失效,而新秩序尚未成型,那些建立或者依賴舊秩序的巨頭會被慣性推著往前走,他們習(xí)慣性地用舊思維或眼光看待世界,所以他們無法正確地理解新時代,這也就是誕生新巨頭的機會。隨著手機等各種智能終端的普及,原本大的開發(fā)領(lǐng)域從企業(yè)應(yīng)用變成了互聯(lián)網(wǎng)應(yīng)用,而這也引發(fā)了計算、存儲等需求的暴漲,云計算隨即呼之而出?;A(chǔ)架構(gòu)從傳統(tǒng)演進到了云計算,與傳統(tǒng)基礎(chǔ)架構(gòu)匹配的應(yīng)用架構(gòu)是單體式分層架構(gòu),而與云計算匹配的應(yīng)用架構(gòu)是什么樣的呢?大時代需要遠見,否則容易懵圈。

Spring 核心技術(shù)與產(chǎn)品理念剖析【下】

記得2013~2016這幾年時間里,應(yīng)用開發(fā)技術(shù)棧出現(xiàn)過一陣混亂,老兵哥所在公司原本有套統(tǒng)一的內(nèi)部開發(fā)框架,就是對 Spring 進行封裝、定制和擴展,適配公司內(nèi)部的基礎(chǔ)平臺和通用組件,滿足內(nèi)部各種企業(yè)應(yīng)用的開發(fā)需求。企業(yè)應(yīng)用都是服務(wù)于內(nèi)部辦公無紙化、自動化的,用戶規(guī)模和并發(fā)訪問量都是可以預(yù)估的,單體式分層架構(gòu)就足夠了。但隨著互聯(lián)網(wǎng)的發(fā)展,越來越多的業(yè)務(wù)開始上線,包括營銷、客服等,互聯(lián)網(wǎng)用戶量不斷增長,并發(fā)訪問量波峰波谷的差值也越來越大,單體式分層架構(gòu)顯然無法滿足業(yè)務(wù)發(fā)展要求了。

當(dāng)時在互聯(lián)網(wǎng)領(lǐng)域走得比較靠前的企業(yè),開始在業(yè)務(wù)驅(qū)動下摸著石頭過河了,那時候就出現(xiàn)了面向服務(wù)架構(gòu) SOA 和Web Service,Spring 最最擅長的領(lǐng)域就是企業(yè)應(yīng)用開發(fā),但對如何滿足互聯(lián)網(wǎng)應(yīng)用的需求也有些摸不準方向,業(yè)界也開始出現(xiàn)許多新物種,其中最火爆的就是阿里的 Dubbo,曾經(jīng)有種說法是 Dubbo 要代替 Spring。Web Service 就像當(dāng)年的 EJB,過于復(fù)雜臃腫,但在沒有更好選擇的情況下,許多企業(yè)都采用了 Web Service。直到 RESTful 等新架構(gòu)技術(shù)出現(xiàn),以及 Netflix 探索出了微服務(wù)架構(gòu),業(yè)界才找到了應(yīng)對互聯(lián)網(wǎng)化的法寶。

Pivotal,Spring 的東家,在 Netflix 探索微服務(wù)架構(gòu)時期,它正好在為 Netflix 提供咨詢服務(wù)。當(dāng)微服務(wù)架構(gòu)被驗證可行之后,Spring 就順勢將 Netflix 微服務(wù)全家桶 Netflix OSS 納入到 Spring Cloud 當(dāng)中,組件包括:Eureka、Zuul、Ribbon、Hystrix、Archaius 等。憑借這套解決方案在技術(shù)上的先進性和成熟度,以及原先遍布全球的無數(shù)粉絲用戶,Spring 在云計算時代重新回到了 Java 應(yīng)用開發(fā)框架的頭把交椅上。Spring Boot 降低了單個應(yīng)用的開發(fā)難度,Spring Cloud 降低了分布式系統(tǒng)的開發(fā)難度,強強聯(lián)合,所向披靡。

隨著 Spring Cloud 的地位越來越穩(wěn)固,它的生態(tài)也開始發(fā)生了些變化,首先 Netflix 宣布 Eureka 閉源,后來 Netflix 宣布 Hystrix 停止新功能開發(fā)。同時,Spring Cloud 也從依賴生態(tài)伙伴提供關(guān)鍵組件,演變到自研適配關(guān)鍵組件,例如:Spring Cloud Gateway、Spring Cloud Config、Spring Cloud LoadBalance 等。

J2EE 在應(yīng)用開發(fā)當(dāng)中所扮演的角色也在不斷演進,最初 J2EE、Spring 相關(guān)的應(yīng)用會被部署至應(yīng)用服務(wù)器,而現(xiàn)如今在 Spring Boot 的支持下,應(yīng)用程序可以采用 DevOps、云原生的開發(fā)模式,Servlet 容器被內(nèi)嵌在發(fā)布物當(dāng)中。在 Spring 5.x 之后,采用 WebFlux 的應(yīng)用可以不依賴任何 Servlet API,也可以部署在非 Servlet 容器的服務(wù)器當(dāng)中,例如:Netty 等。Spring 還在不斷創(chuàng)新和演進,除了 Spring Framework 之外,它還包含許多子工程:Spring Boot、Spring Security、Spring Data、Spring Cloud、Spring Batch 等。至此,Spring Cloud 成功蝶變了。

  • 4. Spring 的產(chǎn)品設(shè)計理念

Spring 的發(fā)展狀態(tài)不是一蹴而就的,先從點到線,再從線到面。最初僅實現(xiàn)了 IoC、AOP 等核心特性,支持單體式分層架構(gòu),再到 Spring Cloud 標準化不同系統(tǒng)之間的交互方式,同時不斷構(gòu)筑起豐富強大的生態(tài)圈。Spring 的成功不光是技術(shù)層面的,更主要是產(chǎn)品設(shè)計理念層面的,技術(shù)上的領(lǐng)先很容易被模仿抄襲,而理念差距卻很難跨越。

樂高(LEGO),來自童話王國丹麥的玩具品牌,歷經(jīng)80多年的發(fā)展成為世界玩具市場的領(lǐng)導(dǎo)品牌,并以強大的實力躋身世界500強(第96位)。它旗下的產(chǎn)品以其獨特的組合結(jié)構(gòu)而風(fēng)靡全球,得到了不計其數(shù)的孩子們甚至成年人的熱愛與收藏。這家公司現(xiàn)在的產(chǎn)品是幾種基本形狀的塑料顆粒,最初它從制造木質(zhì)玩具開始的,后來轉(zhuǎn)而生產(chǎn)塑料玩具,但玩具市場跟服裝市場類似,每年都有不同的流行款式,樂高也做不到每年都準確預(yù)測玩具流行趨勢,生意不慍不火。

后來企業(yè)傳到了創(chuàng)始人的兒子手上,一個偶然的機會有個玩具經(jīng)銷商建議他生產(chǎn)可拼裝玩具,這樣玩家就可以拼裝各式各樣的玩具,樂高也就永遠不會過時了,大部分顆粒的模具都可以重復(fù)使用。從此,樂高開始一發(fā)不可收拾,產(chǎn)品熱銷全球,而且玩家自發(fā)地組成各種社區(qū)交流經(jīng)驗,為樂高的發(fā)展貢獻了無數(shù)智慧。但隨著電子玩具和游戲的興起,樂高這種搭建體驗式的玩具受到了沖擊,直到有玩家利用單片機、電動馬達、傳感器和積木搭建出了可編程、可運動和可遙控的機器人等作品,樂高又重新回到市場領(lǐng)導(dǎo)者地位。

之所以講述樂高的發(fā)展史,是因為它跟 Spring 的成功有著類似的原因,首先提供簡單、輕量和易用的基礎(chǔ)組件,再提供可編程的裝配能力,對樂高來說就是用于銜接積木的標準凹凸卡扣,以及可編程的單片機,對于 Spring 來說就是通過 XML、Annotation 或 Java 類等配置控制裝配過程的 IOC,以及標準化裝配輔助功能 AOP。等有了豐富的基礎(chǔ)組件和可編程的裝配能力之后,玩家或用戶就擁有了靈活性,可以天馬行空發(fā)揮聰明才智創(chuàng)造出各類作品了。

相對于全球玩家或用戶的群體智慧來說,單個公司所能雇傭的人才就非常有限了,Spring 的產(chǎn)品設(shè)計理念是面向群體智慧開放的,它的靈活性激發(fā)了用戶的創(chuàng)造力,同時它通過開源匯聚了全球群體智慧,構(gòu)建起強大的生態(tài)圈,這就是它能夠成功且長久不衰的秘密,總結(jié)起來就是:簡單(基礎(chǔ)組件)、靈活(可編程)、生態(tài)(開放開源),這套理論其實還可以在蘋果 iPhone 等產(chǎn)品的顛覆性成功上得到驗證。

典型的完整 Spring Web 應(yīng)用:

Spring 核心技術(shù)與產(chǎn)品理念剖析【下】

利用第三方 Web 框架的 Spring 中間層應(yīng)用:

Spring 核心技術(shù)與產(chǎn)品理念剖析【下】?

遠程服務(wù)使用場景:

Spring 核心技術(shù)與產(chǎn)品理念剖析【下】

  • 4.1 Spring 的設(shè)計哲學(xué)

這是 Spring 官方文檔上闡釋的設(shè)計哲學(xué),當(dāng)你學(xué)習(xí)一個開發(fā)框架時,除了知道它能做什么之外,最重要的是要了解它都遵循哪些原則,下面這些就是 Spring 這套開發(fā)框架所遵循的指導(dǎo)原則:

  • 提供不同層次的選擇。Spring 可以幫助你將設(shè)計決策盡可能地延后,例如:你可以通過修改配置而不是代碼來替換持久化存儲提供者。這條準則對于許多基礎(chǔ)設(shè)施的關(guān)注點或集成第三方 APIs 同樣適用。

  • 容納多元化的觀點。Spring 擁抱靈活性,它并不固執(zhí)己見地要求事情應(yīng)該怎樣做,它從不同維度滿足應(yīng)用開發(fā)各種類型、廣泛的需求。

  • 保持強大的向后兼容。Spring 的版本升級會盡量避免破壞性變化,它會精心選擇所支持的 JDK 和第三方庫的版本,方便依賴于Spring的應(yīng)用和庫的維護。

  • 關(guān)注 API 的設(shè)計。設(shè)計更能反映業(yè)務(wù)本質(zhì)且能夠在多個版本和許多年里都保持不變的 APIs,Spring 團隊在這件事情上投入了很多思考和時間。

  • 為代碼質(zhì)量設(shè)置更高的標準。Spring 框架非常注重有意義、及時更新和準確的 Javadoc,它是極少數(shù)能夠宣稱代碼結(jié)構(gòu)整潔、包之間沒有循環(huán)依賴關(guān)系的項目之一。

  • 5. Spring 的產(chǎn)品推廣策略

在單體式應(yīng)用時代,老兵哥所在公司也有內(nèi)部開發(fā)框架,以 Spring 為基礎(chǔ)做了封裝隔離,相當(dāng)于在 Spring 外面包了一層,之所以采用這種方式主要有兩個原因:其一,通過封裝來適配公司內(nèi)部技術(shù)平臺和擴展定制特定功能;其二,Spring 是開源產(chǎn)品,它的發(fā)展存在許多變數(shù),為了避免它的變化對應(yīng)用產(chǎn)生不好的影響,我們需要隔離防護層。

但現(xiàn)在到了云計算時代,我們不再采用這種方式了,Spring 已經(jīng)發(fā)展了近十五年,開源機制允許全球開發(fā)者參與其中,這些年已經(jīng)證明它是足夠開放的,而且它已經(jīng)成了行業(yè)事實標準。我們的框架除了供內(nèi)部用戶使用之外,后續(xù)還要作為云產(chǎn)品面向外部用戶,所以必須要跟 Spring Cloud 保持兼容,這樣才能借助 Spring 已有的勢,否則就成了競爭對手,就像阿里近來推出了 Spring Cloud for Alibaba。?

  • 產(chǎn)品積木式標準化,從 3.x 開始 Spring 從原先整體式的產(chǎn)品演化為多個組件。剛開始我們的第一印象會認為 Spring 是重量級的全家桶式解決方案,但實際上它并不是全選或全不選的解決方案,用戶可以只選擇其中某幾個組件來構(gòu)建應(yīng)用。

  • 解決方案套餐化,就像肯德基、麥當(dāng)勞和真功夫等快餐連鎖企業(yè)一樣,隨著產(chǎn)品不斷標準和豐富,套餐化是更好滿足用戶需求的必然選擇。全套推廣難度太大,按需組裝,針對不同的用戶場景提供個性化解決方案,降低用戶上車難度,先讓用戶用上,建立連接,方便后續(xù)進一步轉(zhuǎn)化。不挑用戶,而是想辦法解決不同用戶的問題。這樣更加符合用戶視角,因為用戶對大而全的解決方案沒有直觀感受,他們只關(guān)心產(chǎn)品能否解決目前最急迫的問題。

  • 高頻特性帶動低頻特性,某些產(chǎn)品特性或組件通用性更強,它們被用戶使用的頻次越高,那么這些特性或組件應(yīng)該保持較低的利潤率,或者免費,借助它們擴大用戶群體規(guī)模,從而有機會宣傳推廣那些低頻高潤的特性或組件。這其實就是互聯(lián)網(wǎng)思維,通過免費策略來做大用戶量,然后再深耕用戶,所以說免費其實是最貴的價格。

  • 通過標準化、套餐化就可以讓每個子產(chǎn)品獨立研發(fā)和運營,包干到戶,激發(fā)創(chuàng)造力和動力。兵分多路,多點突破,每套解決方案可以單獨推廣,彼此共享用戶。同時,Spring 規(guī)范了定制擴展機制,團結(jié)了所有可以團結(jié)的力量,構(gòu)建了一個生態(tài)聯(lián)盟。我們說架構(gòu)設(shè)計就是設(shè)計合作機制,Spring 優(yōu)良的架構(gòu)設(shè)計非常有助于合作,從而能夠突破重圍。開放源代碼,擁抱開源趨勢,消除了客戶對被技術(shù)鎖定的擔(dān)憂。

  • 6. 總結(jié)

本文主要是對 Spring 的核心技術(shù)和產(chǎn)品理念做了梳理,可以作為學(xué)習(xí) Spring 的索引參考,最好的學(xué)習(xí)資料就是官方的幫助文檔。這些知識點對于深入掌握 Spring 是非常有必要的,平時工作中老兵哥經(jīng)常要幫同事分析定位技術(shù)問題,在它們的幫助下分析定位問題會更加游刃有余。同時,產(chǎn)品設(shè)計理念和運營策略對于老兵哥推廣微服務(wù)框架也非常有借鑒意義,如何從零開始去推廣一套應(yīng)用開發(fā)框架,讀者朋友們也可以考慮將這些策略運用在其他產(chǎn)品上??紤]到我們每個人的工作學(xué)習(xí)情況不同,平時遇到的問題也不同,本文內(nèi)容無法覆蓋所有人遇到的問題,歡迎大家留言提問,也歡迎關(guān)注「?IT老兵哥?」交流互動,謝謝!

本系列其他文章索引如下:Spring 核心技術(shù)與產(chǎn)品理念剖析(上)

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

分享文章:Spring核心技術(shù)與產(chǎn)品理念剖析【下】-創(chuàng)新互聯(lián)
轉(zhuǎn)載源于:http://muchs.cn/article40/dchgho.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供小程序開發(fā)網(wǎng)站收錄、網(wǎng)站建設(shè)網(wǎng)站導(dǎo)航、定制網(wǎng)站App設(shè)計

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)