版權聲明:本文為博主原創(chuàng)文章,轉載請注明出處,歡迎交流學習!

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

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

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

       大學生就業(yè)培訓,高中生培訓,在職人員轉行培訓,企業(yè)團訓

       

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

       服務網關(GateWay)

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

網友評論