微服務最早由Martin Fowler與James Lewis于2014年共同提出,微服務架構風格是一種使用一套小服務來開發(fā)單個應用的方式途徑,每個服務運行在自己的進程中,并使用輕量級機制通信,通常是HTTP API,這些服務基于業(yè)務能力構建,并能夠通過自動化部署機制來獨立部署,這些服務使用不同的編程語言實現(xiàn),以及不同數(shù)據(jù)存儲技術,并保持最低限度的集中式管理。
一、什么是工業(yè)微服務
工業(yè)微服務是工業(yè)互聯(lián)網(wǎng)平臺的載體,是以單一功能組件為基礎,通過模塊化組合方式實現(xiàn)“松耦合”應用開發(fā)的軟件架構。一個微服務就是一個面向單一功能、能夠獨立部署的小型應用,將多個不同功能、相互隔離的微服務按需組合在一起并通過API集實現(xiàn)相互通信,就構成了一個功能完整的大型應用系統(tǒng)。以產(chǎn)品生產(chǎn)為例,就可將其拆解為供應鏈管理、設備運行狀態(tài)可視化、生產(chǎn)排程、產(chǎn)線數(shù)據(jù)分析、操作記錄等多個微服務功能模塊。
在工業(yè)互聯(lián)網(wǎng)領域,由于工業(yè)知識繁雜、工業(yè)應用復雜程度高等問題,業(yè)內(nèi)人士普遍認為,使用微服務架構將成為開發(fā)工業(yè)APP的主流方式。國外主流的工業(yè)互聯(lián)網(wǎng)平臺,如西門子的Mindsphere、施耐德Eco Struxure等,都通過云平臺支持工業(yè)微服務組件的開發(fā)、部署和管理,從而達到簡化工業(yè)APP開發(fā)的目的。
二、工業(yè)微服務架構和傳統(tǒng)開發(fā)模式區(qū)別
先來看看傳統(tǒng)的web開發(fā)方式,一般被稱為Monolithic(單體式開發(fā))。所有的功能打包在一個 WAR包里,基本沒有外部依賴(除了容器),部署在一個JEE容器(Tomcat,JBoss,WebLogic)里,包含了 DO/DAO,Service,UI等所有邏輯。
三、微服務的特點
● 解耦:同一系統(tǒng)內(nèi)的服務大部分可以被解耦。因此應用,作為一個整體,可以輕易地被構建、修改和擴展。
● 組件化:微服務可以被看成相互獨立的組件,這些組件可以被輕易地替換和升級。
● 業(yè)務能力:微服務很小,它們可以專注于某種單一的能力
● 自治:開發(fā)者和團隊可以獨立地工作,提高開發(fā)速度。
● 持續(xù)交付:允許持續(xù)發(fā)布軟件新版本,通過系統(tǒng)化的自動手段來創(chuàng)建、測試和批準新版本。
● 職責明確:微服務不把應用看成一個又一個的項目。相反,它們把應用當成了自己需要負責的項目。
● 去中心化管理:關注于使用正確的工具來完成正確的工作。這也就是說,沒有標準化的方式或者技術模式。開發(fā)者們有權選擇最好的工具來解決問題。
● 敏捷性:微服務支持敏捷開發(fā)。任何新功能都可以被快速開發(fā)或丟棄。
四、 微服務架構的優(yōu)勢
● 獨立開發(fā):基于各個微服務所獨有的功能,它們可以被輕易開發(fā)出來。
● 獨立部署:基于它們所提供的服務,它們可以被獨立地部署到應用中。
● 錯誤隔離:即便其中某個服務發(fā)生了故障,整個系統(tǒng)還可以繼續(xù)工作。
● 混合技術棧:可以使用不同的語言和技術來為同一個應用構建不同的服務。
● 按粒度擴展:可以根據(jù)需求擴展某一個組件,不需要將所有組件全部擴展。
關于我們 | About zj123 |法律聲明 | 友情鏈接 | 建議留言 | 網(wǎng)站地圖 | 聯(lián)系我們 | 最新資訊
客服:0571-87896971 客服傳真:0571-87298208 543059767 1091140425
中國電子商務網(wǎng)站百強 © 2002-2012 zj123.com All Rights Reserved
浙ICP備11047537號-1