微服務架構

一、微服務簡介

微服務是一種軟件架構模式。架構

它提倡將單一應用程序劃分紅一組小的服務,服務之間相互協調、互相配合,爲用戶提供最終價值。每一個服務運行在其獨立的進程中,服務和服務之間採用輕量級的通訊機制相互溝通(一般是基於HTTP的Restful API).每一個服務都圍繞着具體的業務進行構建,而且可以被獨立的部署到生產環境、類生產環境等。另外,應儘可能避免統一的、集中的服務管理機制,對具體的一個服務而言,應根據業務上下文,選擇合適的語言、工具對其進行構建

二、特徵

小:粒度小,專一一項業務app

獨:獨立部署,服務獨立測試、部署、升級、發佈框架

輕:輕量級通訊分佈式

鬆:鬆耦合。對語言和工具要求鬆,能夠選擇最契合業務的語言微服務

三、三維擴展模型

X軸,服務實例水平擴展,保證可靠性與性能;工具

Y軸,功能的擴展,服務單一職責,功能獨立;性能

Z軸,數據分區,數據獨立,可靠性保證;測試

四、部署粒度

VM(不推薦)接口

Docker進程

Docker是一個開源的應用容器引擎,讓開發者能夠打包他們的應用以及依賴包到一個可移植的容器中,而後發佈到任何流行的 Linux 機器上,也能夠實現虛擬化。容器是徹底使用沙箱機制,相互之間不會有任何接口(相似 iPhone 的 app)。幾乎沒有性能開銷,能夠很容易地在機器和數據中心中運行。最重要的是,他們不依賴於任何語言、框架包括系統。

五、基礎設施

基礎設施自動化(devops、自動化部署)

六、須要解決的難點

分佈式事務:2階段、3階段、tcc

分佈式一致性:全局的分佈式事務;事件驅動

分佈式調度

分佈式全局id生成

服務命名、註冊、發現

服務治理

服務間通訊

相關文章
相關標籤/搜索
本站公眾號
   歡迎關注本站公眾號,獲取更多信息