【從零開始學(xué)微服務(wù)】02.初識微服務(wù)
大家好,歡迎來到萬貓學(xué)社,跟我一起學(xué),你也能成為微服務(wù)專家。
軟件架構(gòu)風(fēng)格
那么到底微服務(wù)是個什么東西呢?其實(shí),微服務(wù)是一種軟件架構(gòu)風(fēng)格。那么什么又是軟件架構(gòu)風(fēng)格呢?可能有的童鞋已經(jīng)懵圈了。
我們打個比方,好比建造房子,有中式建筑,歐式建筑等。這些不同的建筑風(fēng)格,從外觀上看,一眼就能看出來差別。
比如黃鶴樓,典型的中式風(fēng)格建筑,整體使用木制卯榫結(jié)構(gòu),飛檐翹角,甚至還有五脊六獸。
再看巴黎的教堂,整體用石頭筑建,高高的塔尖、大大的穹頂,一眼就能看出是歐式風(fēng)格的建筑;
我們回過頭來,再看軟件系統(tǒng)中的架構(gòu)風(fēng)格,其實(shí)類似我們剛剛說到的建筑風(fēng)格,就是在設(shè)計(jì)軟件系統(tǒng)時使用的慣用模式,或者說是慣用伎倆。
了解了什么是軟件架構(gòu)風(fēng)格,我們再繼續(xù)看看微服務(wù)到底是個什么樣的架構(gòu)風(fēng)格?
微服務(wù)
微服務(wù)(Microservices)是一種軟件架構(gòu)風(fēng)格,是以專注于單一責(zé)任與功能的小型功能塊為基礎(chǔ),利用模塊化的方式組合出復(fù)雜的大型應(yīng)用程序,各功能塊使用與語言無關(guān)的API相互通信。
這是維基百科給出的微服務(wù)的定義,這個定義比較抽象,不是很好理解,那么我們來舉個例子:
這是一個電商系統(tǒng)的例子,我們可以看到它是一個由一系列小服務(wù)組成的,比如:商品服務(wù)、訂單服務(wù)、用戶系統(tǒng)等等。
每一個服務(wù)都是圍繞業(yè)務(wù)功能進(jìn)行構(gòu)建的,比如庫存服務(wù)就是圍繞庫存相關(guān)的業(yè)務(wù)進(jìn)行構(gòu)建的。
每一個小服務(wù)都是獨(dú)立開發(fā)、獨(dú)立運(yùn)行、獨(dú)立部署的,比如促銷服務(wù)是一個獨(dú)立的項(xiàng)目,可以獨(dú)立部署運(yùn)行,所以它可以選擇自己合適的語言或者工具進(jìn)行構(gòu)建,和其他服務(wù)完全不一樣。
服務(wù)和服務(wù)之間使用輕量級的API進(jìn)行通信,比如用戶服務(wù)調(diào)用發(fā)票服務(wù)的時候,是通過基于RESTful風(fēng)格的HTTP接口。
就這樣,我們已經(jīng)對微服務(wù)有了一個初步的印象,隨后我們再逐步深入了解。
總結(jié)
軟件架構(gòu)風(fēng)格:在設(shè)計(jì)軟件系統(tǒng)時使用的慣用模式,或者說是慣用伎倆。
微服務(wù):用一系列小型服務(wù)組建成一個大系統(tǒng),每個服務(wù)都是圍繞業(yè)務(wù)功能進(jìn)行構(gòu)建,每個服務(wù)都是獨(dú)立開發(fā)、運(yùn)行、部署,服務(wù)之間使用輕量級API相互通信。
作者:萬貓學(xué)社
歡迎關(guān)注微信公眾號 :萬貓學(xué)社