版權(quán)聲明:本文為博主原創(chuàng)文章,轉(zhuǎn)載請注明出處,歡迎交流學(xué)習(xí)!

       基于微服務(wù)架構(gòu)和Docker容器技術(shù)的PaaS云平臺建設(shè)目標(biāo)是給我們的開發(fā)人員提供一套服務(wù)快速開發(fā)、部署、運(yùn)維管理、持續(xù)開發(fā)持續(xù)集成的流程。平臺提供基礎(chǔ)設(shè)施、中間件、數(shù)據(jù)服務(wù)、云服務(wù)器等資源,開發(fā)人員只需要開發(fā)業(yè)務(wù)代碼并提交到平臺代碼庫,做一些必要的配置,系統(tǒng)會自動構(gòu)建、部署,實現(xiàn)應(yīng)用的敏捷開發(fā)、快速迭代。在系統(tǒng)架構(gòu)上,PaaS云平臺主要分為微服務(wù)架構(gòu)、Docker容器技術(shù)、DveOps三部分,這篇文章重點(diǎn)介紹微服務(wù)架構(gòu)的實施。

       實施微服務(wù)需要投入大量的技術(shù)力量來開發(fā)基礎(chǔ)設(shè)施,這對很多公司來說顯然是不現(xiàn)實的,別擔(dān)心,業(yè)界已經(jīng)有非常優(yōu)秀的開源框架供我們參考使用。目前業(yè)界比較成熟的微服務(wù)框架有Netflix、Spring Cloud和阿里的Dubbo等。Spring Cloud是基于Spring Boot的一整套實現(xiàn)微服務(wù)的框架,它提供了開發(fā)微服務(wù)所需的組件,跟Spring Boot一起使用的話開發(fā)微服務(wù)架構(gòu)的云服務(wù)會變的很方便。Spring Cloud包含很多子框架,其中Spring Cloud Netflix是其中的一套框架,在我們的微服務(wù)架構(gòu)設(shè)計中,就使用了很多Spring Cloud Netflix框架的組件。Spring Cloud Netflix項目的時間還不長,相關(guān)的文檔資料很少,博主當(dāng)時研究這套框架啃了很多英文文檔,簡直痛苦不堪。對于剛開始接觸這套框架的同學(xué),要搭建一套微服務(wù)應(yīng)用架構(gòu),可能會不知道如何下手,接下來介紹我們的微服務(wù)架構(gòu)搭建過程以及需要那些框架或組件來支持微服務(wù)架構(gòu)。

       為了直接明了的展示微服務(wù)架構(gòu)的組成及原理,博主畫了一張系統(tǒng)架構(gòu)圖,如下:

       大學(xué)生就業(yè)培訓(xùn),高中生培訓(xùn),在職人員轉(zhuǎn)行培訓(xùn),企業(yè)團(tuán)訓(xùn)

       

       從上圖可以看出,微服務(wù)訪問大致路徑為:外部請求 → 負(fù)載均衡 → 服務(wù)網(wǎng)關(guān)(GateWay)→ 微服務(wù) → 數(shù)據(jù)服務(wù)/消息服務(wù)。服務(wù)網(wǎng)關(guān)和微服務(wù)都會用到服務(wù)注冊和發(fā)現(xiàn)來調(diào)用依賴的其他服務(wù),各服務(wù)集群都能通過配置中心服務(wù)來獲得配置信息。

       服務(wù)網(wǎng)關(guān)(GateWay)

       網(wǎng)關(guān)是外界系統(tǒng)(如:客戶端瀏覽器、移動設(shè)備等)和企業(yè)內(nèi)部系統(tǒng)之間的一道門,所有的客戶端請求通過網(wǎng)關(guān)訪問后臺服務(wù)。為了應(yīng)對高并發(fā)訪問,服務(wù)網(wǎng)關(guān)以集群形式部署,這就意味著需要做負(fù)載均衡,我們采用了亞馬遜EC2作為虛擬云服務(wù)器,采用ELB(Elastic Load Balancing)做負(fù)載均衡。EC2具有自動配置容量功能,當(dāng)用戶流量達(dá)到尖峰,EC2可以自動增加更多的容量以維持虛擬主機(jī)的性能。ELB彈性負(fù)載均衡,在多個實例間自動分配應(yīng)用的傳入流量。為了保證安全性,客戶端請求需要使用https加密保護(hù),這就需要我們進(jìn)行SSL卸載,使用Nginx對加密請求進(jìn)行卸載處理。外部請求經(jīng)過ELB負(fù)載均衡后路由到GateWay集群中的某個GateWay服務(wù),由GateWay服務(wù)轉(zhuǎn)發(fā)到微服務(wù)。服務(wù)網(wǎng)關(guān)作為內(nèi)部系統(tǒng)的邊界,它有以下基本能力:

網(wǎng)友評論