什么是分布式?
是一種面向SOA架構(gòu)的,服務(wù)之間也是通過(guò)rpc來(lái)交互或者是webservice來(lái)交互的。邏輯架構(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)用。
常常出現(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)(說(shuō)白了還是網(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è)端口,你只需要寫(xiě)一個(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è)解釋起來(lái)有點(diǎn)復(fù)雜。我理解為一種網(wǎng)絡(luò)通信,封裝了socket,IO,多線程等頭疼的問(wèn)題,幫助你實(shí)現(xiàn)網(wǎng)絡(luò)的遠(yuǎn)程調(diào)用。A要吃B的薯片,B把薯片交給快遞員快遞給A,這個(gè)快遞員就是socket。一袋可能還好,你可以通過(guò)socket調(diào)用,但是你要是貨源呢,你發(fā)一集裝箱,怎么辦,你可以找物流公司幫你完成,RPC就相當(dāng)于這個(gè)物流公司。