Java分布式開發(fā)框架視頻之什么是分布式

Java分布式開發(fā)框架視頻之什么是分布式

深圳達內(nèi)教育      2022-03-30 23:50:01     35

Java分布式開發(fā)框架視頻之什么是分布式,對于初學(xué)者來說,學(xué)習(xí)Java的根本動力就是分布式開發(fā),特別是apache下面的hadoop、hdfs、hbase,這些基本是分布式開發(fā)的標配。那

課程價格 請咨詢

上課時段: 授課校區(qū):

詳細介紹

對于初學(xué)者來說,學(xué)習(xí)Java的根本動力就是分布式開發(fā),特別是apache下面的hadoop、hdfs、hbase,這些基本是分布式開發(fā)的標配。那么這篇文章小編就來和大家一起聊聊分布式吧!

一、什么是分布式系統(tǒng)?

要理解分布式系統(tǒng),主要需要明白一下2個方面:

1、分布式系統(tǒng)一定是由多個節(jié)點組成的系統(tǒng)。

其中,節(jié)點指的是計算機服務(wù)器,而且這些節(jié)點一般不是孤立的,而是互通的。

2、這些連通的節(jié)點上部署了我們的節(jié)點,并且相互的操作會有協(xié)同。

分布式系統(tǒng)對于用戶而言,他們面對的就是一個服務(wù)器,提供用戶需要的服務(wù)而已。而實際上這些服務(wù)是通過背后的眾多服務(wù)器組成的一個分布式系統(tǒng)。因此分布式系統(tǒng)看起來像是一個超級計算機一樣。

例如淘寶,平時大家都會使用,它本身就是一個分布式系統(tǒng)。我們通過瀏覽器訪問淘寶網(wǎng)站時,這個請求的背后就是一個龐大的分布式系統(tǒng)在為我們提供服務(wù),整個系統(tǒng)中有的負責請求處理,有的負責存儲,有的負責計算,最終他們相互協(xié)調(diào)把最后的結(jié)果返回并呈現(xiàn)給用戶。

使用分布式系統(tǒng)主要有特點:

1、增大系統(tǒng)容量。我們的業(yè)務(wù)量越來越大,而要能應(yīng)對越來越大的業(yè)務(wù)量,一臺機器的性能已經(jīng)無法滿足了,我們需要多臺機器才能應(yīng)對大規(guī)模的應(yīng)用場景。所以,我們需要垂直或是水平拆分業(yè)務(wù)系統(tǒng),讓其變成一個分布式的架構(gòu)。

2、加強系統(tǒng)可用。我們的業(yè)務(wù)越來越關(guān)鍵,需要提高整個系統(tǒng)架構(gòu)的可用性,這就意味著架構(gòu)中不能存在單點故障。這樣,整個系統(tǒng)不會因為一臺機器出故障而導(dǎo)致整體不可用。所以,需要通過分布式架構(gòu)來冗余系統(tǒng)以消除單點故障,從而提高系統(tǒng)的可用性。

3、因為模塊化,所以系統(tǒng)模塊重用度更高。

4、因為軟件服務(wù)模塊被拆分,開發(fā)和發(fā)布速度可以并行而變得更快。

5、系統(tǒng)擴展性更高。

6、團隊協(xié)作流程也會得到改善。

分布式系統(tǒng)的類型有三種:

1、分布式處理,但只有一個總數(shù)據(jù)庫,沒有局部數(shù)據(jù)庫。

2、分層式處理,每一層都有自己的數(shù)據(jù)庫。

3、充分分散的分布式網(wǎng)絡(luò),沒有中央控制部分,各節(jié)點之間的聯(lián)系方式又可以有多種,如松散的聯(lián)接,緊密的聯(lián)接,動態(tài)的聯(lián)接,廣播通知式的聯(lián)接等。

二、什么是Java分布式應(yīng)用?

一個大型的系統(tǒng)往往被分為幾個子系統(tǒng)來做,一個子系統(tǒng)可以部署在一臺機器的多個JVM上,也可以部署在多臺機器上。但是每一個系統(tǒng)不是獨立的,不是完全獨立的。需要相互通信,共同實現(xiàn)業(yè)務(wù)功能。

一句話來說:分布式就是通過計算機網(wǎng)絡(luò)將后端工作分布到多臺主機上,多個主機一起協(xié)同完成工作。

三、實現(xiàn)分布式主要的方式

分布式應(yīng)用用到的技術(shù):網(wǎng)絡(luò)通信,基于消息方式的系統(tǒng)間通信和基于遠程調(diào)用的系統(tǒng)間通信。

缺點:就是會增加技術(shù)的復(fù)雜度?;谙⒌南到y(tǒng)通信方式,主要是利用的網(wǎng)絡(luò)協(xié)議,比如TCP/IP協(xié)議。系統(tǒng)間的通信還需要對數(shù)據(jù)進行處理,比如同步IO和異步IO。

遠程調(diào)用實現(xiàn)系統(tǒng)間的通信:通過調(diào)用本地的Java接口的方法來透明的調(diào)用遠程Java的實現(xiàn)。具體的細節(jié)有框架來實現(xiàn)。

基于Java自身技術(shù)實現(xiàn)消息方式的系統(tǒng)間通信:

基于Java自身包實現(xiàn)消息方式的系統(tǒng)間通信的方式有:

TCP/IP+BIO、TCP/IP+NIO、UDP/IP+BIO以及UDP/IP+NIO 4種方式。

TCP/IP+BIO在Java中可基于Socket、ServerSocket來實現(xiàn)TCP/IP+BIO的系統(tǒng)間通信。

Socket主要用于實現(xiàn)建立連接及網(wǎng)絡(luò)IO的操作,ServerSocket主要用于實現(xiàn)服務(wù)器端端口的監(jiān)聽及Socket對象的獲取。

多個客戶端訪問服務(wù)器端的情況下,會遇到兩個問題:建立多個socket的,占用過多的本地資源,服務(wù)器端要承受巨大的來訪量;創(chuàng)建過多的socket,占用過多的資源,影響性能。

通常解決這種問題的辦法是,使用連接池,既能限制連接的數(shù)量,又能避免創(chuàng)建的過程,可以很大的提高性的問題。缺點就是競爭量大的時候造成激烈的競爭和等待。需要注意的是,要設(shè)置超時時間,如果不這樣的話,會造成無限制的等待。

為了解決這個問題,采用一連接一線程的方式,同時也會帶來副作用,內(nèi)存占用過多。

TCP/IP異步通信:Java NIO通道技術(shù)實現(xiàn)。

Java分布式視頻下載

Nginx視頻教程:http://www.bjpowernode.com/javavideo/133.html

Redis視頻教程:http://www.bjpowernode.com/javavideo/130.html

Dubbo視頻教程:http://www.bjpowernode.com/javavideo/129.html

以上就是深圳達內(nèi)教育java培訓(xùn)機構(gòu)的小編針對“Java分布式開發(fā)框架視頻之什么是分布式”的內(nèi)容進行的回答,希望對大家有所幫助,如有疑問,請在線咨詢,有專業(yè)老師隨時為你服務(wù)。

培訓(xùn)啦提醒您:交易時請核實對方資質(zhì),對于過大宣傳或承諾需謹慎!任何要求預(yù)付定金、匯款等方式均存在風(fēng)險,謹防上當。