學(xué)習(xí)記錄之微服務(wù)
階段一:靜態(tài)服務(wù)器
????早期的服務(wù)器狀態(tài),安裝好一些固定內(nèi)容,讓用戶訪問
????功能單一,如果不修改代碼,內(nèi)部是不會(huì)變的,只能做信息的呈現(xiàn) 和輸出
階段二:普通動(dòng)態(tài)服務(wù)器
????網(wǎng)頁(yè)中的數(shù)據(jù)可能來自數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù)中的數(shù)據(jù)可以在后臺(tái)中進(jìn)行修改
????實(shí)現(xiàn)不修改頁(yè)面代碼,但是變化頁(yè)面內(nèi)容的效果
????因?yàn)橛辛藬?shù)據(jù)庫(kù)的支持,動(dòng)態(tài)網(wǎng)站開始支持登錄注冊(cè),增刪改查功能
階段三:用戶共享內(nèi)容的互聯(lián)網(wǎng)生態(tài)
? ? 隨著互聯(lián)網(wǎng)的普及,個(gè)人的社交需求提升,出現(xiàn)了很多有用戶貢獻(xiàn)內(nèi)容的網(wǎng)站
????微博,抖音,淘寶,大眾點(diǎn)評(píng)或類似的網(wǎng)站
階段四:微服務(wù)時(shí)代
????隨著用戶的增加,各種并發(fā)的增高,要求我們的服務(wù)器在繁忙的情況下,也需要快速的做出反應(yīng),用戶體驗(yàn)必須保證,這樣就要求我們項(xiàng)目有下面三個(gè)目標(biāo).
????高并發(fā),高可用,高性能
????高并發(fā);很多人同時(shí)訪問這個(gè)網(wǎng)站,這個(gè)網(wǎng)站不能失能
????高可用:全年365天每天24小時(shí)隨時(shí)訪問隨時(shí)可用9
????高性能:在服務(wù)器壓力大,并發(fā)高時(shí),要有快速的響應(yīng)
????簡(jiǎn)稱微服務(wù)三高
Java服務(wù)器項(xiàng)目分類
現(xiàn)在市面上常見的java開發(fā)的項(xiàng)目可以分為兩大類
1.企業(yè)級(jí)應(yīng)用:
????一般指一個(gè)企業(yè)或機(jī)構(gòu)內(nèi)部使用的網(wǎng)站或服務(wù)器應(yīng)用程序,使用的人群比較固定,并不向全國(guó)乃至全世界開放,例如:商場(chǎng)企事業(yè)單位,醫(yī)療,金融,軍事政府機(jī)關(guān)等,所以這個(gè)項(xiàng)目沒有代替品,對(duì)"三高"沒有強(qiáng)烈要求
????企業(yè)級(jí)項(xiàng)目一般會(huì)在權(quán)限和業(yè)務(wù)流程方面設(shè)計(jì)的比較復(fù)雜
2.互聯(lián)網(wǎng)應(yīng)用
????能夠向全國(guó)乃至全世界開放的網(wǎng)站或服務(wù)器應(yīng)用程序.我們手機(jī)中安裝的App大部分都是互聯(lián)網(wǎng)應(yīng)用,比如: 微信,支付寶,京東,愛奇藝,高德地圖等
他們因?yàn)樯虡I(yè)競(jìng)爭(zhēng)等原因,對(duì)服務(wù)器的性能有非常高的要求,就是我們提到的"三高",但是互聯(lián)網(wǎng)應(yīng)用一般沒有權(quán)限和業(yè)務(wù)非常復(fù)雜的需求.
綜上所述,企業(yè)級(jí)應(yīng)用和互聯(lián)網(wǎng)應(yīng)用的偏重點(diǎn)不同,
在當(dāng)今java開發(fā)業(yè)界中基本規(guī)律如下
-如果開發(fā)的是企業(yè)級(jí)應(yīng)用,使用單體架構(gòu)的情況比較多
-如果開發(fā)的是互聯(lián)網(wǎng)應(yīng)用,使用微服務(wù)架構(gòu)的情況比較多
微服務(wù)概述
什么是微服務(wù)
微服務(wù)的概念是有Martin Fowler(馬丁. 福勒),在2014年提出的
微服務(wù)是由單一應(yīng)用陳旭構(gòu)成的小服務(wù),自己擁有自己的行程與輕量化處理,服務(wù)依業(yè)務(wù)功能設(shè)計(jì),以全自動(dòng)的部署,與其他服務(wù)使用 HTTP API 通信.同時(shí)服務(wù)會(huì)使用最小的規(guī)模的集中管理能力,服務(wù)可以用不同的編程語(yǔ)言與數(shù)據(jù)庫(kù)等組件實(shí)現(xiàn)
簡(jiǎn)單來說:微服務(wù)就是將一個(gè)大型項(xiàng)目的各個(gè)業(yè)務(wù)代碼,拆分為多個(gè)互不相干的小項(xiàng)目,而這些小項(xiàng)目專心的完成自己的功能,而且可以調(diào)用別的小項(xiàng)目的方法,從而完成整體功能.
京東\淘寶這樣的大型互聯(lián)網(wǎng)應(yīng)用程序,基本每個(gè)操作都是一個(gè)單獨(dú)的微服務(wù)在支持:
登錄服務(wù)器
搜索服務(wù)器
商品信息服務(wù)器
購(gòu)物車服務(wù)器
訂單服務(wù)器
支付服務(wù)器
物流服務(wù)器
.....
怎么搭建微服務(wù)項(xiàng)目
在微服務(wù)概念提出之前(2014年),每個(gè)廠商都有自己的解決方案
但是Martin Fowler(馬丁·福勒)提出了微服務(wù)的標(biāo)準(zhǔn)之后,為了技術(shù)統(tǒng)一和兼容性,很多企業(yè)開始支持這個(gè)標(biāo)準(zhǔn)
現(xiàn)在我們開發(fā)的微服務(wù)項(xiàng)目,大多數(shù)都是在馬丁·福勒標(biāo)準(zhǔn)下的
如果我們自己編寫支持這個(gè)標(biāo)準(zhǔn)的代碼是不現(xiàn)實(shí)的,必須通過現(xiàn)成的框架或組件完成滿足這個(gè)微服務(wù)標(biāo)準(zhǔn)的項(xiàng)目結(jié)構(gòu)和格式
當(dāng)今程序員要想快速開發(fā)滿足上面微服務(wù)標(biāo)準(zhǔn)的項(xiàng)目結(jié)構(gòu),首選SpringCloud
Spring Cloud
什么是SpringCloud
SpringCloud是由Spring提供的一套能夠快速搭建微服務(wù)架構(gòu)程序的框架集
框架集表示SpringCloud不是一個(gè)框架,而是很多框架的統(tǒng)稱
SpringCloud就是為了搭建微服務(wù)架構(gòu)項(xiàng)目出現(xiàn)的
有人將SpringCloud稱之為"Spring全家桶",廣義上指代Spring的所有產(chǎn)品
Spring Cloud的內(nèi)容
內(nèi)容的提供者角度:
????Spring自己編寫的框架或軟件
????Netflix(奈非);早期提供了全套的微服務(wù)架構(gòu)解決方案
????alibaba(阿里巴巴):新版本的SpringCloudAlibaba正在迅速占領(lǐng)市場(chǎng)(推薦使用)
功能上分類
? ? -微服務(wù)的注冊(cè)中心
????-微服務(wù)間的調(diào)用
????-微服務(wù)的分布式事務(wù)
????-微服務(wù)的限流
????-微服務(wù)的限流
????-微服務(wù)的網(wǎng)關(guān)
????......