什么是分布式嚷辅?
是一種面向SOA架構(gòu)的,服務(wù)之間也是通過rpc來交互或者是webservice來交互的距误。邏輯架構(gòu)設(shè)計(jì)完后就該做物理架構(gòu)設(shè)計(jì)簸搞,系統(tǒng)應(yīng)用部署在超過一臺(tái)服務(wù)器或虛擬機(jī)上,且各分開部署的部分彼此通過各種通訊協(xié)議交互信息准潭,就可算作分布式部署趁俊,生產(chǎn)環(huán)境下的微服務(wù)肯定是分布式部署的,分布式部署的應(yīng)用不一定是微服務(wù)架構(gòu)的刑然,比如集群部署寺擂,它是把相同應(yīng)用復(fù)制到不同服務(wù)器上,但是邏輯功能上還是單體應(yīng)用。
常常出現(xiàn)的狀況:通信異常(就是網(wǎng)不好啦)網(wǎng)絡(luò)分區(qū)(俗稱“腦裂”怔软,就是因?yàn)橥ㄐ女惓?严福褐袘?yīng)該只有一個(gè)領(lǐng)導(dǎo)者,但是由于通訊異常挡逼,導(dǎo)致某一個(gè)區(qū)域自行推舉出另一個(gè)領(lǐng)導(dǎo)括改,互相沖突)? ?????????????三態(tài)(說白了還是網(wǎng)不好,一般一次通訊要么成功要么失敗家坎,因?yàn)橥ㄐ女惓?dǎo)致了第三種狀態(tài)嘱能,就是超時(shí))節(jié)點(diǎn)故障(就是分布式集群中某一個(gè)節(jié)點(diǎn)宕機(jī))
SOA又是啥?
類似于JAVA的低耦合高內(nèi)聚原則虱疏,就是一個(gè)接口服務(wù)器焰檩,比如你有WEB端,IOS端订框,安卓端三個(gè)端口析苫,你只需要寫一個(gè)通用的格式(JSON或者XML數(shù)據(jù))就可以完成三個(gè)平臺(tái)的使用,可以單獨(dú)的部署一個(gè)業(yè)務(wù)穿扳,當(dāng)一個(gè)業(yè)務(wù)達(dá)到高峰期的時(shí)候衩侥,類似于賬戶注冊(cè),賬戶搶購(gòu)之類的矛物,并且其他服務(wù)不是很忙的時(shí)候茫死,你可以單獨(dú)集群部署這個(gè)一個(gè)服務(wù)器,減少壓力履羞。
那么rpc是啥峦萎?
這個(gè)解釋起來有點(diǎn)復(fù)雜。我理解為一種網(wǎng)絡(luò)通信忆首,封裝了socket爱榔,IO,多線程等頭疼的問題糙及,幫助你實(shí)現(xiàn)網(wǎng)絡(luò)的遠(yuǎn)程調(diào)用详幽。A要吃B的薯片,B把薯片交給快遞員快遞給A浸锨,這個(gè)快遞員就是socket唇聘。一袋可能還好,你可以通過socket調(diào)用柱搜,但是你要是貨源呢迟郎,你發(fā)一集裝箱,怎么辦聪蘸,你可以找物流公司幫你完成宪肖,RPC就相當(dāng)于這個(gè)物流公司炒嘲。