泉州做網(wǎng)站的公司濰坊網(wǎng)站關(guān)鍵詞推廣
單機(jī)的局限性:
1.受限于硬件資源,單機(jī)所能承受的用戶并發(fā)量太少;
2.一個(gè)系統(tǒng)有多個(gè)模塊,任意模塊的修改都會(huì)導(dǎo)致整個(gè)項(xiàng)目代碼重新編譯、部署;
3.系統(tǒng)中,有些模塊是CPU密集型,有些模塊是I/O密集型,造成各個(gè)模塊對(duì)于硬件資源的需求是不一樣的。
集群:
負(fù)載均衡???????
集群的優(yōu)點(diǎn)?
????????性能提升了,用戶的并發(fā)量提升了,因?yàn)樗綌U(kuò)充了硬件資源;
????????部署簡(jiǎn)單。
集群的缺點(diǎn)?
????????1、項(xiàng)目代碼還是需要整體重新編譯,而且需要進(jìn)行多次部署。
????????2、系統(tǒng)中有些模塊是屬于CPU密集型(計(jì)算量大的),有些模塊是屬于I/O密集型的(接觸輸入輸出,網(wǎng)絡(luò)IO),造成各模塊對(duì)硬件資源的需求是不一樣。
并不是說(shuō)機(jī)器多,并發(fā)量就上來(lái),性能就高。像一些使用不多的模塊,不需要高并發(fā),所以也就不需要分別部署在三臺(tái)機(jī)器上,不常用的模塊只需要部署在一臺(tái)機(jī)器上就好
分布式:
集群:每一臺(tái)服務(wù)器獨(dú)立運(yùn)行一個(gè)工程的所有模塊。
分布式:一個(gè)工程拆分了很多模塊,每一個(gè)模塊獨(dú)立部署運(yùn)行在一個(gè)服務(wù)器主機(jī)上,所有服務(wù)器協(xié)同工作共同提供服務(wù),每一臺(tái)服務(wù)器稱作分布式的一個(gè)節(jié)點(diǎn),根據(jù)節(jié)點(diǎn)的并發(fā)要求,對(duì)一個(gè)節(jié)點(diǎn)可以再做節(jié)點(diǎn)模塊集群部署。
分布式優(yōu)點(diǎn):
1.對(duì)于并發(fā)量大的模塊我們單獨(dú)處理,單獨(dú)加集群;
2.假如其中一個(gè)模塊出問(wèn)題了,我們只需要修改一個(gè)模塊就可以了;
3.把CPU密集型的模塊部署在CPU資源好的機(jī)器上。把內(nèi)存小的模塊部署在硬盤(pán)資源少的機(jī)器上。把IIO密集型的模塊部署在CPU不是很好的機(jī)器上。
4、有的模塊要求并發(fā)能力高,可以進(jìn)行多機(jī)器集群部署。有的模塊并發(fā)能力小,部署在一臺(tái)機(jī)器就可以。
5、配置著高可用,容災(zāi),主備服務(wù)器,不用擔(dān)心就—套系統(tǒng)掛掉了怎么辦。
分布式問(wèn)題:
1、大系統(tǒng)的軟件模塊該怎么劃分?
- 各模塊可能實(shí)現(xiàn)大量重復(fù)的代碼!
- 模塊和模塊之間的界線不清晰(有的模塊里面的函數(shù)調(diào)動(dòng)另一個(gè)模塊的函數(shù)代碼)。
- 處理不好,造成大量重復(fù)代碼。而且你改你的,我改我的,重復(fù)的公共代碼就出問(wèn)題了,變成不可控制了。
2. 各個(gè)模塊之間如何通信?
兩個(gè)模塊之間rpc通信協(xié)議,交互。