什么是微服務(wù),這篇文章告訴你!

本文主要是對(duì)微服務(wù)及其發(fā)展做一個(gè)簡(jiǎn)單的介紹,在了解什么是微服務(wù)前,我們有必要先了解下互聯(lián)網(wǎng)的發(fā)展過(guò)程與現(xiàn)狀,總的來(lái)說(shuō),互聯(lián)網(wǎng)的發(fā)展大致經(jīng)歷了這三個(gè)階段:?jiǎn)误w應(yīng)用 —> SOA —> 微服務(wù),這三者的關(guān)系如下:


image.png

首先第一個(gè)階段是單體應(yīng)用階段,在這個(gè)階段,所有模塊都聚集在一個(gè)應(yīng)用程序上,注意我這里用模塊來(lái)描述,這是因?yàn)樵谝粋€(gè)應(yīng)用中,各部分用模塊或組件來(lái)描述比較合適。單體應(yīng)用比較著名的結(jié)構(gòu)是MVC架構(gòu),這種方式請(qǐng)求鏈路簡(jiǎn)單直接,缺點(diǎn)是隨著應(yīng)用規(guī)模的變大,代碼復(fù)雜度變高,協(xié)作效率變低,且牽一發(fā)而動(dòng)全身,如果某一個(gè)模塊掛了可能會(huì)導(dǎo)致整個(gè)應(yīng)用掛掉。另外,單體應(yīng)用的擴(kuò)容也是個(gè)大問(wèn)題,因?yàn)橐粩U(kuò)容的話(huà)就得所有模塊都擴(kuò)容,沒(méi)辦法針對(duì)個(gè)別模塊,服務(wù)器成本耗費(fèi)較大。

第二階段就到了SOA階段。既然單體應(yīng)用的缺點(diǎn)這么多,而互聯(lián)網(wǎng)又是不斷更新迭代的,所以就出現(xiàn)了改良的SOA架構(gòu),SOA架構(gòu)全稱(chēng)Service Oriented Architecture,中文譯為面向服務(wù)的架構(gòu)。其實(shí)SOA非常好理解,既然單體應(yīng)用的劣勢(shì)是由于眾多模塊耦合在一起導(dǎo)致的,那最簡(jiǎn)單的辦法就是拆開(kāi)來(lái)!

之所以用應(yīng)用,而不是服務(wù)來(lái)描述,是我在閱讀一系列文章后,發(fā)現(xiàn)SOA架構(gòu)與后面的微服務(wù)架構(gòu)還是有一些細(xì)微差別,典型的有SOA架構(gòu)是比較粗粒度的拆分,而微服務(wù)是比較細(xì)粒度的拆分,所以我個(gè)人感覺(jué)用應(yīng)用來(lái)描述更為合適。

另外,SOA架構(gòu)還有一個(gè)ESB組件,即企業(yè)服務(wù)總線(xiàn)。之所以有這個(gè)組件,是因?yàn)镾OA架構(gòu)允許跨多種服務(wù)、平臺(tái)和編程語(yǔ)言運(yùn)行,這極大地提高其擴(kuò)展性。但與之相對(duì),不同編程語(yǔ)言、不同協(xié)議的應(yīng)用直接通信會(huì)比較麻煩,所以就出現(xiàn)ESB這個(gè)“中介”,用來(lái)協(xié)調(diào)各個(gè)應(yīng)用之間的通信,這樣各個(gè)應(yīng)用之間的交互也會(huì)更加清晰。用我看過(guò)的一篇文章的一句話(huà),ESB 可以簡(jiǎn)單理解為:它做了消息的轉(zhuǎn)化解釋和路由工作,讓不同的服務(wù)互聯(lián)互通!

第三階段就到了微服務(wù)階段,詳情可以戳這里繼續(xù)了解:https://mp.weixin.qq.com/s/pwyi1uuu5dDyZ6qeBIb1Fw

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容