單體架構(gòu)的優(yōu)點(diǎn)和缺點(diǎn),微服務(wù)架構(gòu)的優(yōu)點(diǎn)和缺點(diǎn)
單體架構(gòu)
- 優(yōu)點(diǎn):架構(gòu)簡(jiǎn)單,維護(hù)成本低
- 缺點(diǎn):各個(gè)模塊耦合度太高,當(dāng)對(duì)一個(gè)模塊進(jìn)行更新修改時(shí),會(huì)影響到其他模塊,要一起進(jìn)行修改。當(dāng)存在性能瓶頸的時(shí)候,需要對(duì)整個(gè)服務(wù)進(jìn)行擴(kuò)容,不能有針對(duì)性的擴(kuò)容,如一個(gè)程序的主要功能時(shí)其中某個(gè)服務(wù),要對(duì)其增加機(jī)器,但因?yàn)槭菃误w架構(gòu)只有一個(gè)jar包,所以只能所有功能一起升級(jí),哪怕某些服務(wù)所需的性能很低。
微服務(wù)架構(gòu)
- 缺點(diǎn):架構(gòu)復(fù)雜,維護(hù)成本高,會(huì)帶來(lái)很多微服務(wù)架構(gòu)的問(wèn)題,比如說(shuō)事務(wù)問(wèn)題、網(wǎng)絡(luò)問(wèn)題
- 優(yōu)點(diǎn):性能高、服務(wù)之間耦合度低,服務(wù)可以并行開(kāi)發(fā),開(kāi)發(fā)周期短
分布式和微服務(wù)的區(qū)別?
分布式:分散部署
- 分布式服務(wù)顧名思義服務(wù)是分散部署在不同的機(jī)器上的,一個(gè)服務(wù)可能負(fù)責(zé)幾個(gè)功能,是一種面向SOA架構(gòu)的,服務(wù)之間也是通過(guò)來(lái)交RPC互或。邏輯架構(gòu)設(shè)計(jì)完后就該做物理架構(gòu)設(shè)計(jì),系統(tǒng)應(yīng)用部署在超過(guò)一臺(tái)服務(wù)器或虛擬機(jī)上,且各分開(kāi)部署的部分彼此通過(guò)各種通訊協(xié)議交互信息,就可算作分布式部署,生產(chǎn)環(huán)境下的微服務(wù)肯定是分布式部署的,分布式部署的應(yīng)用不一定是微服務(wù)架構(gòu)的,比如集群部署,它是把相同應(yīng)用復(fù)制到不同服務(wù)器上,但是邏輯功能上還是單體應(yīng)用。
微服務(wù):分散能力
- 在做架構(gòu)設(shè)計(jì)的時(shí)候,先做邏輯架構(gòu),再做物理架構(gòu),當(dāng)你拿到需求后,估算過(guò)最大用戶量和并發(fā)量后,計(jì)算單個(gè)應(yīng)用服務(wù)器能否滿足需求,如果用戶量只有幾百人的小應(yīng)用,單體應(yīng)用就能搞定,即所有應(yīng)用部署在一個(gè)應(yīng)用服務(wù)器里,如果是很大用戶量,且某些功能會(huì)被頻繁訪問(wèn),或者某些功能計(jì)算量很大,建議將應(yīng)用拆解為多個(gè)子系統(tǒng),各自負(fù)責(zé)各自功能,這就是微服務(wù)架構(gòu)。
微服務(wù)相比分布式服務(wù)來(lái)說(shuō),它的粒度更小,服務(wù)之間耦合度更低,由于每個(gè)微服務(wù)都由獨(dú)立的小團(tuán)隊(duì)負(fù)責(zé),因此它敏捷性更高,分布式服務(wù)最后都會(huì)向微服務(wù)架構(gòu)演化,這是一種趨勢(shì), 不過(guò)服務(wù)微服務(wù)化后帶來(lái)的挑戰(zhàn)也是顯而易見(jiàn)的,例如服務(wù)粒度小,數(shù)量大,后期運(yùn)維將會(huì)很難文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-499205.html
微服務(wù)之間通訊的幾種方式?有哪些優(yōu)缺點(diǎn)? ?
RPC:遠(yuǎn)程調(diào)用(doubbo協(xié)議)
- 優(yōu)點(diǎn):相較于http調(diào)用,性能更高,RPC基于thrift實(shí)現(xiàn)高效的二進(jìn)制傳輸,Http大部分通過(guò)json實(shí)現(xiàn),字節(jié)大小和序列化耗時(shí)都比thrift更消耗性能。還有http協(xié)議太重了,它有請(qǐng)求頭、請(qǐng)求體...
- 缺點(diǎn):架構(gòu)復(fù)雜,需要引入注冊(cè)中心。每個(gè)服務(wù)啟動(dòng)的時(shí)候都要將自己暴露的遠(yuǎn)程調(diào)用接口告訴注冊(cè)中心。
MQ消息隊(duì)列
- 優(yōu)點(diǎn):解耦、異步、削峰
- 缺點(diǎn):分布式問(wèn)題顯得尤為突出。因?yàn)橄啾扔谕秸{(diào)用方式,如果被調(diào)用服務(wù)報(bào)錯(cuò)了,調(diào)用方感知不到
微服務(wù)網(wǎng)關(guān)的幾個(gè)重要的作用,網(wǎng)關(guān)和nginx的區(qū)別?
- 統(tǒng)一鑒權(quán),熔點(diǎn)限流,整個(gè)微服務(wù)后端所有的流量入口
- nginx支持的并發(fā)量比網(wǎng)關(guān)要多很多。nginx能夠保證到達(dá)網(wǎng)關(guān)的流量都是有用的流量
網(wǎng)關(guān)和zookeeper區(qū)別?
網(wǎng)關(guān)主要是負(fù)責(zé)微服務(wù)http接口的負(fù)載均衡(更側(cè)重于客戶端和后端之間的通信),而zookeeper主要負(fù)責(zé)遠(yuǎn)程調(diào)用的負(fù)載均衡(后端微服務(wù)之間的通信)文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-499205.html
nginx幾種常見(jiàn)的負(fù)載均衡策略。
- 根據(jù)權(quán)重負(fù)載均衡:在輪詢策略的基礎(chǔ)上指定輪詢的幾率
- 根據(jù)ip負(fù)載均衡:指定負(fù)載均衡器按照基于客戶端IP的分配方式,這個(gè)方法確保了相同的客戶端的請(qǐng)求一直發(fā)送到相同的服務(wù)器,以保證session會(huì)話。這樣每個(gè)訪客都固定訪問(wèn)一個(gè)后端服務(wù)器,可以解決session不能跨服務(wù)器的問(wèn)題。
- 輪詢:每個(gè)請(qǐng)求會(huì)按時(shí)間順序逐一分配到不同的后端服務(wù)器。
- 隨機(jī):就是隨機(jī)分配
到了這里,關(guān)于單體架構(gòu) 微服務(wù)架構(gòu) 分布式 微服務(wù)通信方式 網(wǎng)關(guān)與nginx的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!