版權(quán)聲明:本文為博主原創(chuàng)文章,轉(zhuǎn)載請(qǐng)注明出處,歡迎交流學(xué)習(xí)!
基于微服務(wù)架構(gòu)和Docker容器技術(shù)的PaaS云平臺(tái)建設(shè)目標(biāo)是給我們的開發(fā)人員提供一套服務(wù)快速開發(fā)、部署、運(yùn)維管理、持續(xù)開發(fā)持續(xù)集成的流程。平臺(tái)提供基礎(chǔ)設(shè)施、中間件、數(shù)據(jù)服務(wù)、云服務(wù)器等資源,開發(fā)人員只需要開發(fā)業(yè)務(wù)代碼并提交到平臺(tái)代碼庫,做一些必要的配置,系統(tǒng)會(huì)自動(dòng)構(gòu)建、部署,實(shí)現(xiàn)應(yīng)用的敏捷開發(fā)、快速迭代。在系統(tǒng)架構(gòu)上,PaaS云平臺(tái)主要分為微服務(wù)架構(gòu)、Docker容器技術(shù)、DveOps三部分,這篇文章重點(diǎn)介紹微服務(wù)架構(gòu)的實(shí)施。
實(shí)施微服務(wù)需要投入大量的技術(shù)力量來開發(fā)基礎(chǔ)設(shè)施,這對(duì)很多公司來說顯然是不現(xiàn)實(shí)的,別擔(dān)心,業(yè)界已經(jīng)有非常優(yōu)秀的開源框架供我們參考使用。目前業(yè)界比較成熟的微服務(wù)框架有Netflix、Spring Cloud和阿里的Dubbo等。Spring Cloud是基于Spring Boot的一整套實(shí)現(xiàn)微服務(wù)的框架,它提供了開發(fā)微服務(wù)所需的組件,跟Spring Boot一起使用的話開發(fā)微服務(wù)架構(gòu)的云服務(wù)會(huì)變的很方便。Spring Cloud包含很多子框架,其中Spring Cloud Netflix是其中的一套框架,在我們的微服務(wù)架構(gòu)設(shè)計(jì)中,就使用了很多Spring Cloud Netflix框架的組件。Spring Cloud Netflix項(xiàng)目的時(shí)間還不長(zhǎng),相關(guān)的文檔資料很少,博主當(dāng)時(shí)研究這套框架啃了很多英文文檔,簡(jiǎn)直痛苦不堪。對(duì)于剛開始接觸這套框架的同學(xué),要搭建一套微服務(wù)應(yīng)用架構(gòu),可能會(huì)不知道如何下手,接下來介紹我們的微服務(wù)架構(gòu)搭建過程以及需要那些框架或組件來支持微服務(wù)架構(gòu)。
為了直接明了的展示微服務(wù)架構(gòu)的組成及原理,博主畫了一張系統(tǒng)架構(gòu)圖,如下:
從上圖可以看出,微服務(wù)訪問大致路徑為:外部請(qǐng)求 → 負(fù)載均衡 → 服務(wù)網(wǎng)關(guān)(GateWay)→ 微服務(wù) → 數(shù)據(jù)服務(wù)/消息服務(wù)。服務(wù)網(wǎng)關(guān)和微服務(wù)都會(huì)用到服務(wù)注冊(cè)和發(fā)現(xiàn)來調(diào)用依賴的其他服務(wù),各服務(wù)集群都能通過配置中心服務(wù)來獲得配置信息。
服務(wù)網(wǎng)關(guān)(GateWay)
網(wǎng)關(guān)是外界系統(tǒng)(如:客戶端瀏覽器、移動(dòng)設(shè)備等)和企業(yè)內(nèi)部系統(tǒng)之間的一道門,所有的客戶端請(qǐng)求通過網(wǎng)關(guān)訪問后臺(tái)服務(wù)。為了應(yīng)對(duì)高并發(fā)訪問,服務(wù)網(wǎng)關(guān)以集群形式部署,這就意味著需要做負(fù)載均衡,我們采用了亞馬遜EC2作為虛擬云服務(wù)器,采用ELB(Elastic Load Balancing)做負(fù)載均衡。EC2具有自動(dòng)配置容量功能,當(dāng)用戶流量達(dá)到尖峰,EC2可以自動(dòng)增加更多的容量以維持虛擬主機(jī)的性能。ELB彈性負(fù)載均衡,在多個(gè)實(shí)例間自動(dòng)分配應(yīng)用的傳入流量。為了保證安全性,客戶端請(qǐng)求需要使用https加密保護(hù),這就需要我們進(jìn)行SSL卸載,使用Nginx對(duì)加密請(qǐng)求進(jìn)行卸載處理。外部請(qǐng)求經(jīng)過ELB負(fù)載均衡后路由到GateWay集群中的某個(gè)GateWay服務(wù),由GateWay服務(wù)轉(zhuǎn)發(fā)到微服務(wù)。服務(wù)網(wǎng)關(guān)作為內(nèi)部系統(tǒng)的邊界,它有以下基本能力:
延伸閱讀
- ssh框架 2016-09-30
- 阿里移動(dòng)安全 [無線安全]玩轉(zhuǎn)無線電——不安全的藍(lán)牙鎖 2017-07-26
- 消息隊(duì)列NetMQ 原理分析4-Socket、Session、Option和Pipe 2024-03-26
- Selective Search for Object Recognition 論文筆記【圖片目標(biāo)分割】 2017-07-26
- 詞向量-LRWE模型-更好地識(shí)別反義詞同義詞 2017-07-26
- 從棧不平衡問題 理解 calling convention 2017-07-26
- php imagemagick 處理 圖片剪切、壓縮、合并、插入文本、背景色透明 2017-07-26
- Swift實(shí)現(xiàn)JSON轉(zhuǎn)Model - HandyJSON使用講解 2017-07-26
- 阿里移動(dòng)安全 Android端惡意鎖屏勒索應(yīng)用分析 2017-07-26
- 集合結(jié)合數(shù)據(jù)結(jié)構(gòu)來看看(二) 2017-07-26