Spring Cloud Alibaba - 01漫談傳統(tǒng)架構(gòu)和微服務(wù)架構(gòu)
文章目錄

單體架構(gòu) VS 微服務(wù)架構(gòu)
單體架構(gòu)
微服務(wù)架構(gòu)
單機(jī)架構(gòu)擴(kuò)展與微服務(wù)擴(kuò)展
微服務(wù) VS 微服務(wù)架構(gòu)
微服務(wù)的優(yōu)缺點(diǎn)
優(yōu)點(diǎn)
缺點(diǎn)
微服務(wù)的適用場(chǎng)景
合適
不合適
單體架構(gòu) VS 微服務(wù)架構(gòu)
單體架構(gòu)
簡(jiǎn)而言之 : war包走天下
我們來(lái)分析一下優(yōu)缺點(diǎn):
優(yōu)點(diǎn):
架構(gòu)簡(jiǎn)單
開(kāi)發(fā)測(cè)試部署簡(jiǎn)單
缺點(diǎn):
隨著業(yè)務(wù)擴(kuò)展,代碼越來(lái)越復(fù)雜,代碼質(zhì)量參差不齊,開(kāi)發(fā)人員的水平不一,修改每一個(gè)小bug都是心驚膽戰(zhàn)的
由于單體架構(gòu),功能復(fù)雜,部署慢
擴(kuò)展成本高,根據(jù)單體架構(gòu)圖 假設(shè)模塊A是一個(gè)CPU密集型的模塊 ,而模塊B是一個(gè)IO密集模塊。單體架構(gòu)上,無(wú)法針對(duì)單個(gè)功能模塊進(jìn)行擴(kuò)展,那么就需要替換更牛逼的CPU + 更牛逼的內(nèi)
存 + 更牛逼的磁盤(pán),這成本…
阻礙了新技術(shù)的發(fā)展,升級(jí)成本高~
微服務(wù)架構(gòu)
英文:https://martinfowler.com/articles/microservices.html
中文:http://blog.cuicc.com/blog/2015/07/22/microservices
微服務(wù)核心就是把傳統(tǒng)的單機(jī)應(yīng)用,根據(jù)業(yè)務(wù)將單機(jī)應(yīng)用拆分為一個(gè)一個(gè)的服務(wù),徹底的解耦,每一個(gè)服務(wù)都是提供特定的功能,一個(gè)服務(wù)只做一件事,類(lèi)似進(jìn)程,每個(gè)服務(wù)都能夠單獨(dú)部署,甚至可以擁有自己的數(shù)據(jù)庫(kù)。這樣的一個(gè)一個(gè)的小服務(wù)就是微服務(wù).
單體應(yīng)用,非核心業(yè)務(wù)出現(xiàn)了重大bug導(dǎo)致系統(tǒng)內(nèi)存溢出,導(dǎo)致整個(gè)服務(wù)宕機(jī) 。拆分之后,只是出問(wèn)題的模塊不可用,系統(tǒng)核心功能并不受影響。
單機(jī)架構(gòu)擴(kuò)展與微服務(wù)擴(kuò)展
單機(jī)架構(gòu)擴(kuò)展通常都需要依賴nginx
微服務(wù)架構(gòu)以及擴(kuò)展可以單獨(dú)擴(kuò)展某個(gè)模塊,無(wú)需像單體應(yīng)用整體擴(kuò)展。
微服務(wù)數(shù)據(jù)存儲(chǔ)可以有自己的數(shù)據(jù)庫(kù)
微服務(wù) VS 微服務(wù)架構(gòu)
微服務(wù)架構(gòu)是一個(gè)架構(gòu)風(fēng)格, 提倡
將一個(gè)單一應(yīng)用程序開(kāi)發(fā)為一組小型服務(wù).
每個(gè)服務(wù)運(yùn)行在自己的進(jìn)程中
服務(wù)之間通過(guò)輕量級(jí)的通信機(jī)制(比如http rest api)
每個(gè)服務(wù)都能夠獨(dú)立的部署
每個(gè)服務(wù)甚至可以擁有自己的數(shù)據(jù)庫(kù)
微服務(wù)以及微服務(wù)架構(gòu)的是二個(gè)完全不同的概念。
微服務(wù)強(qiáng)調(diào)的是服務(wù)的大小和對(duì)外提供的單一功能,而微服務(wù)架構(gòu)是指把 一個(gè)一個(gè)的微服務(wù)組合管理起來(lái),對(duì)外提供一套完整的服務(wù)。
微服務(wù)的優(yōu)缺點(diǎn)
優(yōu)點(diǎn)
每個(gè)服務(wù)足夠小 , 足夠內(nèi)聚,代碼更加容易理解 , 專(zhuān)注一個(gè)業(yè)務(wù)功能點(diǎn)
開(kāi)發(fā)簡(jiǎn)單,一個(gè)服務(wù)只干一個(gè)事情
微服務(wù)能夠被小團(tuán)隊(duì)開(kāi)發(fā),提高效率
按需伸縮
前后端分離 ,后端開(kāi)發(fā)人員只要關(guān)系后端接口的安全性以及性能
一個(gè)服務(wù)可用擁有自己的數(shù)據(jù)庫(kù),也可以多個(gè)服務(wù)連接同一個(gè)數(shù)據(jù)庫(kù).
…
缺點(diǎn)
增加了運(yùn)維人員的工作量,以前只要部署一個(gè)war包,現(xiàn)在可能需要部署成百上千個(gè)jar/war包. 甚至引入docker + k8s
服務(wù)之間相互調(diào)用,增加通信成本
數(shù)據(jù)一致性問(wèn)題(分布式事物問(wèn)題)
系能監(jiān)控等,問(wèn)題定位…
微服務(wù)的適用場(chǎng)景
合適
大型復(fù)雜的項(xiàng)目
快速迭代的項(xiàng)目
并發(fā)高的項(xiàng)目
不合適
業(yè)務(wù)穩(wěn)定,主要工作修修bug
迭代周期長(zhǎng),發(fā)版頻率低
spring spring Cloud 微服務(wù) 微服務(wù)引擎 CSE
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。