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