服務熱線:400-180-1790

互聯網+軟件集成服務商
股票代碼:834911

首頁>新聞資訊>技術前沿>詳情

技術前沿 | 基于微服務架構的高達軟件電商云平臺
295

 

微服務架構是什么?微服務最早由Martin Fowler與James Lewis于2014年共同提出,微服務架構風格是一種使用一套小服務來開發單個應用的方式途徑,每個服務運行在自己的進程中,并使用輕量級機制通信,通常是HTTP API,這些服務基于業務能力構建,并能夠通過自動化部署機制來獨立部署,這些服務使用不同的編程語言實現,以及不同數據存儲技術,并保持最低限度的集中式管理。

微服務設計原則

單一職責原則

每個微服務只需要實現自己的業務邏輯即可。比如訂單管理模塊,它只需要處理訂單的業務邏輯就可以,其它的不必考慮。

 

圖中左邊是單體架構的集群,右邊是微服務集群

傳統的單體架構是以整個系統為單位進行部署,而微服務則是以每一個獨立組件為單位進行部署。

服務自治原則

每個微服務從開發、測試、運維等都是相互獨立,互不干擾,包括存儲的數據庫也是,自己就有一套完整的流程,我們完全可以把它當成一個項目來對待,不必依賴于其它模塊。

微服務的設計思想對團隊的劃分有著一定的影響,使得團隊組織架構的劃分更傾向于垂直架構,比如用戶業務是一個團隊來負責,支付業務是一個團隊來負責。

輕量級通信原則

首先是通信的語言非常的輕量,第二,該通信方式需要跨語言、跨平臺,之所以要跨平臺、跨語言就是為了讓每個微服務都有足夠的獨立性,可以不受技術的鉗制。

接口明確原則

由于微服務之間可能存在著調用關系,為了盡量避免以后由于某個微服務的接口變化而導致其它微服務都做調整,在設計之初就要考慮到所有情況,讓接口盡量做得更通用,更靈活,從而盡量避免其它模塊也做調整。

微服務特點

易于開發和維護

由于微服務單個模塊就相當于一個項目,開發這個模塊我們就只需關心這個模塊的邏輯即可,代碼量和邏輯復雜度都會降低,從而易于開發和維護

啟動較快

這是相對單個微服務來講的,相比于啟動單體架構的整個項目,啟動某個模塊的服務速度明顯是要快很多的。

局部修改易于部署

在開發中發現了一個問題,如果是單體架構的話,我們就需要重新發布并啟動整個項目,非常耗時間,但是微服務則不同,哪個模塊出現了bug我們只需要解決那個模塊的bug就可以了,解決完bug之后,我們只需要重啟這個模塊的服務即可,部署相對簡單,不必重啟整個項目從而大大節約時間。

 

如上圖,每個微服務都有自己的業務層和數據庫,這樣做,改變其中一個微服務,不會影響其他的服務。

技術棧不受限

比如訂單微服務和短信微服務原來都是用java寫的,現在我們想把短信微服務改成nodeJs技術,這是完全可以的,而且由于所關注的只是短信的邏輯而已,技術更換的成本也就會因此少很多。

按需伸縮

根據實際運營需求,快速水平擴展服務部署。

運維要求較高

對于單體架構來講,我們只需要維護好這一個項目就可以了,但是對于微服務架構來講,由于項目是由多個微服務構成的,每個模塊出現問題都會造成整個項目運行出現異常,想要知道是哪個模塊造成的問題往往是不容易的,因為我們無法一步一步通過debug的方式來跟蹤,這就對運維人員提出了很高的要求。

分布式的復雜性

對于單體架構來講,我們可以不使用分布式,但是對于微服務架構來說,分布式幾乎是必會用的技術,由于分布式本身的復雜性,導致微服務架構也變得復雜起來。

微服務開發框架

常用微服務的開發框架:

1.Spring Cloud:http://projects.spring.io/spring-cloud(現在非常流行的微服務架構)

2.Dubbo:http://dubbo.io

3.Dropwizard:http://www.dropwizard.io(關注單個微服務的開發)

4.Consul、etcd&etc.(微服務的模塊)

Sprint cloud和Sprint boot區別

Spring Boot:

旨在簡化創建產品級的Spring應用和服務,簡化了配置文件,使用嵌入式web服務器,含有諸多開箱即用微服務功能,可以和spring cloud聯合部署。

Spring Cloud:

微服務工具包,為開發者提供了在分布式系統的配置管理、服務發現、斷路器、智能路由、微代理、控制總線等開發工具包。

電商云平臺展示

電商云平臺基于多年的業務沉淀,以“大中臺小前臺的”思想,以微服務的架構,將各業務線中共享的功能沉淀到中臺服務,加強中臺賦能業務前臺的能力。

老彩票app