圖解服務(wù)化架構(gòu)演進(jìn)許久沒摘記了,繼續(xù)告誡自己: 要靜下心來,低調(diào)多做事 前言來自 dubbo的用戶手冊 中的一句話: 隨著互聯(lián)網(wǎng)的發(fā)展,網(wǎng)站應(yīng)用的規(guī)模不斷擴(kuò)大,常規(guī)的垂直應(yīng)用架構(gòu)已無法應(yīng)對,分布式服務(wù)架構(gòu)以及流動計(jì)算架構(gòu)勢在必行,亟需一個治理系統(tǒng)確保架構(gòu)有條不紊的演進(jìn)。 常規(guī)的垂直應(yīng)用架構(gòu)就相當(dāng)于傳統(tǒng)的那種,現(xiàn)階段傳統(tǒng)垂直架構(gòu)改造的核心就是對應(yīng)用做服務(wù)化改造,服務(wù)話改造使用的核心技術(shù)架構(gòu)就是分布式服務(wù)框架。 其實(shí)這篇是概念上的總結(jié),技術(shù)概念軟文,紀(jì)錄此文讓自己更明白什么是微服務(wù)化架構(gòu)。 服務(wù)化架構(gòu)演進(jìn)請看下圖,也來自 dubbo的用戶手冊 ,圖中恰恰少了微服務(wù)架構(gòu)的圖。 那什么是微服務(wù)架構(gòu)呢?先從第一個圖中第一個說起吧。 1.orm – 單一應(yīng)用架構(gòu) 我認(rèn)為是一個高內(nèi)聚版本,所有功能部署在一起。數(shù)據(jù)訪問框架(orm)成為關(guān)鍵。這個架構(gòu)很少被人使用,幾乎接近滅絕了吧。 優(yōu)點(diǎn):成本低,適合功能少又簡單 缺點(diǎn):很多,比如無法適應(yīng)高流量,二次開發(fā)難,部署成本高 2.mvc架構(gòu) - 垂直應(yīng)用架構(gòu) 當(dāng)訪問量漸漸增大,慢慢演化成用的很多的mvc架構(gòu)。雖然還是所有的功能都是部署在同一個進(jìn)程中,但是可以通過雙機(jī)或者前置負(fù)載均衡來實(shí)現(xiàn)負(fù)載分流。這樣應(yīng)用也可以拆分成不同的幾個應(yīng)用,以提升性能和效率。 此時,mvc架構(gòu)用于分離前后端邏輯。一方面,有一定的模塊化。另一方面,加速和方便了開發(fā)。 3.rpc架構(gòu) - 分布式服務(wù)架構(gòu) 當(dāng)mvc垂直應(yīng)用分成不同應(yīng)用時,越來越多的情況下。不可避免的事應(yīng)用a與應(yīng)用b之間的交互。此時將核心和公共的 業(yè)務(wù)功能抽出來,作為單獨(dú)的服務(wù),并實(shí)現(xiàn)前后端邏輯分離。 此時則就需要提高業(yè)務(wù)的復(fù)用及整合的分布式rpc框架,例如dubbo等。 4.soa架構(gòu) - 流動計(jì)算架構(gòu) 當(dāng)rpc架構(gòu)中的服務(wù)越來越多時,服務(wù)的生命周期的管控,容量的評估等各種問題會出現(xiàn),使服務(wù)化成為瓶頸。需要增加一個調(diào)度中心來進(jìn)行對服務(wù)管控,監(jiān)督等。 然后,提到關(guān)鍵的 -- 5.微服務(wù)架構(gòu)問:什么是微服務(wù)架構(gòu)? 答:它就是將功能分散到各個離散的服務(wù)中然后實(shí)現(xiàn)對方案的解耦。服務(wù)更原子,自治更小,然后高密度部署服務(wù)。 下面是對微服務(wù)架構(gòu)的圖解: 小結(jié)伴隨敏捷開發(fā),持續(xù)交付,DevOps,Docker等高速發(fā)展,微服務(wù)必然是未來演進(jìn)方向。加油~ 多了解吧。 |
|