最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

java架構(gòu)師高端課微服務(wù)_01 Spring Cloud Netflix Eureka

2020-07-04 15:23 作者:自學(xué)Python的小姐姐呀  | 我要投稿

主要內(nèi)容

微服務(wù)簡(jiǎn)介

SpringCloud簡(jiǎn)介

SpringCloud框架結(jié)構(gòu)

SpringCloud和Dubbo的對(duì)比

SpringCloud版本號(hào)說(shuō)明

學(xué)習(xí)目標(biāo)

Spring Cloud簡(jiǎn)介

一、?微服務(wù)簡(jiǎn)介

1?什么是微服務(wù)?

微服務(wù)的概念最早是在 2014 年由 Martin Fowler 和 James Lewis 共同提出,他們定義了微服務(wù)是由單一應(yīng)用程序構(gòu)成的小服務(wù),擁有自己的進(jìn)程與輕量化處理,服務(wù)依業(yè)務(wù)功能設(shè)計(jì),以全自動(dòng)的方式部署,與其他服務(wù)使用 HTTP API 通訊。同時(shí),服務(wù)會(huì)使用最小規(guī)模的集中管理 (例如 Docker)技術(shù),服務(wù)可以用不同的編程語(yǔ)言與數(shù)據(jù)庫(kù)等。

簡(jiǎn)單舉例:看軍事新聞的同學(xué)應(yīng)該都知道,一艘航空母艦作戰(zhàn)能力雖然很強(qiáng),但是弱點(diǎn)太明顯,就是防御能力太差,單艘的航空母艦很少單獨(dú)行動(dòng),通常航空母艦戰(zhàn)斗群才是主要軍事力量,你可以把單艘航母理解為的單體應(yīng)用(防御差,機(jī)動(dòng)性不好),把航母戰(zhàn)斗群(調(diào)度復(fù)雜,維護(hù)費(fèi)用高)理解為微服務(wù)。


2?為什么使用微服務(wù)?

2.1?單體應(yīng)用特點(diǎn)

大部分的開(kāi)發(fā)者經(jīng)歷和開(kāi)發(fā)過(guò)單體應(yīng)用,無(wú)論是傳統(tǒng)的 Servlet + JSP,還是 SSM,還是現(xiàn)在的 SpringBoot,它們都是單體應(yīng)用,那么長(zhǎng)期陪伴我們的單體應(yīng)用有什么弊端?我們是面臨了什么問(wèn)題,導(dǎo)致我們要拋棄單體應(yīng)用轉(zhuǎn)向微服務(wù)架構(gòu)?主要原因如下:

部署成本高(無(wú)論是修改1行代碼,還是10行代碼,都要全量替換)

改動(dòng)影響大,風(fēng)險(xiǎn)高(不論代碼改動(dòng)多小,成本都相同)。

因?yàn)槌杀靖撸L(fēng)險(xiǎn)高,所以導(dǎo)致部署頻率低(無(wú)法快速交付客戶需求)。

無(wú)法滿足快速擴(kuò)容,彈性伸縮,無(wú)法適應(yīng)云環(huán)境特性等問(wèn)題

2.1?分布式系統(tǒng)的復(fù)雜性微服務(wù)特點(diǎn)

微服務(wù)架構(gòu)的特點(diǎn):針對(duì)特定服務(wù)發(fā)布,影響小,風(fēng)險(xiǎn)小,成本低頻繁發(fā)布版本,快速交付需求;低成本擴(kuò)容,彈性伸縮,適應(yīng)云環(huán)境。

我們知道一個(gè)樸素的理念,沒(méi)有任何事物是完美的,任何東西都有兩面性,有得必有失,那么在選擇微服務(wù)在解決了快速響應(yīng)和彈性伸縮的問(wèn)題同時(shí),它又給我們帶來(lái)了什么問(wèn)題?簡(jiǎn)單總結(jié)如下:

部署,測(cè)試和監(jiān)控的成本問(wèn)題

分布式事務(wù)和CAP的相關(guān)問(wèn)題

系統(tǒng)應(yīng)用由原來(lái)的單體變成幾十到幾百個(gè)不同的工程,會(huì)所產(chǎn)生例如包括服務(wù)間的依賴,服務(wù)如何拆,內(nèi)部接口規(guī)范,數(shù)據(jù)傳遞等等問(wèn)題,尤其是服務(wù)拆分,需要團(tuán)隊(duì)熟悉業(yè)務(wù)流程,懂得取舍,要保證拆分的粒度服務(wù)既符合“高內(nèi)聚,低耦合”的基本原則,還要兼顧業(yè)務(wù)的發(fā)展以及公司的愿景,要還要說(shuō)服團(tuán)隊(duì)成員為之努力,并且積極投入,在多方中間取得平衡。

對(duì)于分布式系統(tǒng),部署,測(cè)試和監(jiān)控都需要大量的中間件來(lái)支撐,而且中間件本身也要維護(hù),原先單體應(yīng)用很簡(jiǎn)單的事務(wù)問(wèn)題 ,轉(zhuǎn)到分布式環(huán)境就變得很復(fù)雜,分布式事務(wù)是采用簡(jiǎn)單的重試+補(bǔ)償機(jī)制,還是采用二階段提交協(xié)議等強(qiáng)一致性方法來(lái)解決,就要取決對(duì)業(yè)務(wù)場(chǎng)景的熟悉加上反復(fù)的權(quán)衡了,相同問(wèn)題還包括對(duì) CAP 模型的權(quán)衡,總之微服務(wù)對(duì)團(tuán)隊(duì)整體的技術(shù)棧水平整體要求更高。

3?應(yīng)用架構(gòu)變遷圖


二、?Spring Cloud簡(jiǎn)介

Spring Cloud是Spring旗下的一個(gè)頂級(jí)項(xiàng)目。

Spring Cloud是一個(gè)服務(wù)治理平臺(tái),提供了一些服務(wù)框架。包含了:服務(wù)注冊(cè)與發(fā)現(xiàn)、配置中心、消息中心 、負(fù)載均衡、數(shù)據(jù)監(jiān)控等等。

Spring Cloud是一系列框架的有序集合。它利用Spring Boot的開(kāi)發(fā)便利性巧妙地簡(jiǎn)化了分布式系統(tǒng)基礎(chǔ)設(shè)施的開(kāi)發(fā),如服務(wù)發(fā)現(xiàn)注冊(cè)、配置中心、消息總線、負(fù)載均衡、斷路器、數(shù)據(jù)監(jiān)控等,都可以用Spring Boot的開(kāi)發(fā)風(fēng)格做到一鍵啟動(dòng)和部署。Spring Cloud并沒(méi)有重復(fù)制造輪子,它只是將目前各家公司開(kāi)發(fā)的比較成熟、經(jīng)得起實(shí)際考驗(yàn)的服務(wù)框架組合起來(lái),通過(guò)Spring Boot風(fēng)格進(jìn)行再封裝屏蔽掉了復(fù)雜的配置和實(shí)現(xiàn)原理,最終給開(kāi)發(fā)者留出了一套簡(jiǎn)單易懂、易部署和易維護(hù)的分布式系統(tǒng)開(kāi)發(fā)工具包。

Spring Cloud是一個(gè)微服務(wù)框架,相比RPC/SOA框架而言,Spring Cloud提供的全套的分布式系統(tǒng)解決方案。?

Spring Cloud對(duì)Netflix的多個(gè)微服務(wù)基礎(chǔ)框架開(kāi)源組件進(jìn)行了封裝,同時(shí)又實(shí)現(xiàn)了和云端平臺(tái)以及和Spring Boot開(kāi)發(fā)框架的集成。?

Spring Cloud為微服務(wù)架構(gòu)開(kāi)發(fā)涉及的配置管理,服務(wù)治理,熔斷機(jī)制,智能路由,微代理,控制總線,一次性token,全局一致性鎖,leader選舉,分布式session,集群狀態(tài)管理等操作提供了一種簡(jiǎn)單的開(kāi)發(fā)方式。

Spring Cloud 為開(kāi)發(fā)者提供了快速構(gòu)建分布式系統(tǒng)的工具,開(kāi)發(fā)者可以快速的啟動(dòng)服務(wù)或構(gòu)建應(yīng)用、同時(shí)能夠快速和云平臺(tái)資源進(jìn)行對(duì)接。

1?Netflix簡(jiǎn)介

Netflix(Nasdaq NFLX) 成立于1997年,是一家在線影片租賃提供商,主要提供Netflix超大數(shù)量的DVD并免費(fèi)遞送,總部位于美國(guó)加利福尼亞州洛斯蓋圖。

Netflix 經(jīng)過(guò)幾年的開(kāi)源實(shí)踐,推出最新開(kāi)源改革計(jì)劃,打造了全新的 Netflix 開(kāi)源門(mén)戶,并且會(huì)繼續(xù)開(kāi)源更多好項(xiàng)目,增加 Netflix 項(xiàng)目開(kāi)源透明度。

互聯(lián)網(wǎng)流媒體播放商 Netflix 在幾年前就開(kāi)始創(chuàng)建自己的開(kāi)源門(mén)戶?Netflix Open Source?(別名 NetflixOSS,http://netflix.github.io/) 了,他們并不知道這會(huì)如何發(fā)展;也不知道開(kāi)源貢獻(xiàn)者是否會(huì)使用,改進(jìn)或者是忽略;更沒(méi)想到的是就這樣擁有了公司的社區(qū),開(kāi)發(fā)者會(huì)給予反饋,一些中間供應(yīng)商會(huì)把這些開(kāi)源軟件集成到他們的解決方案中。

到了今天,Netflix 擁有上百個(gè)開(kāi)源軟件,從基礎(chǔ)設(shè)施平臺(tái)到大數(shù)據(jù)工具,再到自動(dòng)化部署軟件。隨著時(shí)間的發(fā)展,OSS 網(wǎng)站也由于越來(lái)越多的組件而變得越來(lái)越復(fù)雜?,F(xiàn)在,Netflix 還會(huì)繼續(xù)開(kāi)源更多的軟件。

Netflix發(fā)布在Github中的項(xiàng)目庫(kù)地址:https://github.com/netflix

三 Spring Cloud框架結(jié)構(gòu)


四、?Spring Cloud和Dubbo的對(duì)比

Spring Cloud和Dubbo都是微服務(wù)開(kāi)發(fā)框架。不是新的技術(shù)就一定是好的技術(shù)。Dubbo優(yōu)勢(shì)在于開(kāi)發(fā)簡(jiǎn)單,效率高。Spring Cloud優(yōu)勢(shì)在于功能全面且可靠性高。



性能對(duì)比資料:

https://mp.weixin.qq.com/s?__biz=MzA5MzQ2NTY0OA==&mid=2650796496&idx=1&sn=a544b76660484b9914b65f038cc39e6d&chksm=88562c8fbf21a5995909ffa9f172f31651b1ebd04897917e43caef3491954e24ed0d0477a5a1&mpshare=1&scene=23&srcid=01245faqrBlQETYK9c7zVmd3#rd


五、?Spring Cloud版本號(hào)說(shuō)明

1?常見(jiàn)版本號(hào)說(shuō)明

開(kāi)發(fā)中,使用的框架版本,最好是RELEASE版本或Final版本。

常見(jiàn)版本號(hào)格式為: x.y.z.stage

x - 數(shù)字格式主版本號(hào),當(dāng)功能模塊有較大更新或者整體架構(gòu)發(fā)生變化時(shí),主版本號(hào)會(huì)更新。

y - 數(shù)字格式次版本號(hào),次版本表示只是局部的一些變動(dòng)。

z - 數(shù)字格式修正版本號(hào),一般是bug的修復(fù)或者是小的變動(dòng)。

stage - 希臘字母版本號(hào),也稱為階段版本號(hào)。用于標(biāo)注當(dāng)前版本的軟件處于哪個(gè)開(kāi)發(fā)階段。常用的階段版本包括:BASE、ALPHA、BATE、RELEASE/FINAL。

BASE - 設(shè)計(jì)階段。只有相應(yīng)的設(shè)計(jì)沒(méi)有具體的功能實(shí)現(xiàn)。

ALPHA - 軟件的初級(jí)版本。存在較多的bug。

BATE - 表示相對(duì)ALPHA有了很大的進(jìn)步,消除了嚴(yán)重的bug,還存在一些潛在的bug。

RELEASE/FINAL - 該版本表示最終版,即正式發(fā)布版本。

2?Spring Cloud版本號(hào)說(shuō)明

Spring Cloud是一個(gè)包含若干子框架的框架集合體,是一個(gè)完整的微服務(wù)框架體系,如果使用場(chǎng)景版本號(hào)來(lái)進(jìn)行標(biāo)記,容易混淆主框架版本和子框架版本標(biāo)記。所以Spring Cloud使用一種全新的版本號(hào)來(lái)對(duì)主框架進(jìn)行版本標(biāo)記,而子框架的版本標(biāo)記大多還是使用常用版本號(hào)標(biāo)記的。

Spring Cloud版本格式如: 版本號(hào)命名.stage

版本號(hào)命名:Spring Cloud主框架版本號(hào)是使用英國(guó)倫敦地鐵站名稱來(lái)進(jìn)行標(biāo)記的,并根據(jù)地鐵站名稱的首字母的英文自然升序排列來(lái)識(shí)別版本的遞增。如:Angle、Brixton、Camden、Dalston、Edgware、Finchley等。后續(xù)版本提升會(huì)繼續(xù)根據(jù)首字母升序排列。

stage:階段版本號(hào)。常用的階段版本包括:BUILD-XXX[SNAPSHOT]、GA、PRE(M1、M2等)、RC、SR。

BUILD-XXX[SNAPSHOT] - 開(kāi)發(fā)版本、一般是開(kāi)發(fā)團(tuán)隊(duì)內(nèi)部使用。

GA - 穩(wěn)定版,內(nèi)部開(kāi)發(fā)到一定階段了,各個(gè)模塊集成后,經(jīng)過(guò)全面測(cè)試發(fā)現(xiàn)沒(méi)有問(wèn)題,可對(duì)外發(fā)行了。這個(gè)時(shí)候叫GA(General Availability)?;旧峡梢允褂昧?。沒(méi)有嚴(yán)重的BUG問(wèn)題,但是有未測(cè)出的BUG隱患。不推薦商業(yè)使用。

PRE - 里程碑版,由于GA還不屬于公開(kāi)發(fā)行版,里面還有些功能不完善或者bug,于是就有了milestone(里程碑版)。milestone版主要修復(fù)了一些bug。一個(gè)GA后,一般會(huì)有多個(gè)里程本版。例如 M1 M2 M3......。不推薦商業(yè)使用。

RC - 候選發(fā)布版,從BUILD后到GA在到M基本上系統(tǒng)就算定型了,這個(gè)時(shí)候系統(tǒng)就進(jìn)入Release Candidate(候選發(fā)布版)。該階段的軟件類(lèi)似于最終發(fā)行前的一個(gè)觀察期,該期間只對(duì)一些發(fā)現(xiàn)的等級(jí)高的bug進(jìn)行修復(fù)。發(fā)布RC1 RC2等版本??梢钥紤]RC版本。

SR - 正式發(fā)布版,公開(kāi)正式發(fā)布。正式發(fā)布版一般也有多個(gè)發(fā)布,例如 SR1 SR2 SR3等等,一般是用來(lái)修復(fù)大bug或者優(yōu)化。最好使用SR版本。

學(xué)習(xí)過(guò)程使用的版本是:Hoxton.SR1。當(dāng)前版本中內(nèi)部使用的SpringBoot是2.2.2.RELEASE版本。




java架構(gòu)師高端課微服務(wù)_01 Spring Cloud Netflix Eureka的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
衡东县| 乐安县| 长春市| 托克托县| 普陀区| 射洪县| 江津市| 资阳市| 涪陵区| 嘉峪关市| 甘德县| 中卫市| 平潭县| 石渠县| 湖南省| 信丰县| 巴东县| 太湖县| 梁山县| 巴彦淖尔市| 社会| 萨嘎县| 柞水县| 黔江区| 龙胜| 庆阳市| 湄潭县| 顺昌县| 瑞昌市| 定远县| 彰武县| 马关县| 方正县| 阿拉善右旗| 汪清县| 新乐市| 新乡县| 阿坝| 福建省| 承德市| 沁阳市|