大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國(guó)咨詢/投訴熱線:400-8080-105
動(dòng)力節(jié)點(diǎn)LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 學(xué)習(xí)攻略 Java學(xué)習(xí) Java分布式基礎(chǔ)學(xué)習(xí)指南

Java分布式基礎(chǔ)學(xué)習(xí)指南

更新時(shí)間:2021-07-19 15:31:01 來源:動(dòng)力節(jié)點(diǎn) 瀏覽1713次

網(wǎng)絡(luò)通信

協(xié)議

  • TCP/IP

擴(kuò)展:由網(wǎng)絡(luò)層的IP協(xié)議和傳輸層的TCP協(xié)議組成,TCP負(fù)責(zé)發(fā)現(xiàn)傳輸?shù)膯栴},一有問題就發(fā)出信號(hào),要求重新傳輸,直到所有數(shù)據(jù)安全正確地傳輸?shù)侥康牡亍6鳬P是給因特網(wǎng)的每一臺(tái)聯(lián)網(wǎng)設(shè)備規(guī)定一個(gè)地址。

  • UDP/IP
  • Multicast

IO

  • BIO
  • NIO
  • AIO

基于消息方式的系統(tǒng)間通信

1.當(dāng)系統(tǒng)之間要通信時(shí),就向外發(fā)送消息,消息可以使字節(jié)流、字節(jié)數(shù)組,甚至是java對(duì)象,其他系統(tǒng)收到消息后則進(jìn)行相應(yīng)的業(yè)務(wù)處理。消息方式的通信,通常是基于網(wǎng)絡(luò)協(xié)議來實(shí)現(xiàn)的,常用的系統(tǒng)間通信的協(xié)議有:TCP/IP和UDP/IP

2.TCP/IP是一種可靠的網(wǎng)絡(luò)數(shù)據(jù)傳輸?shù)膮f(xié)議。TCP/IP要求通信雙方首先建立連接,之后再進(jìn)行數(shù)據(jù)的傳輸TCP/IP負(fù)責(zé)保證數(shù)據(jù)傳輸?shù)目煽啃裕〝?shù)據(jù)的可到達(dá)、數(shù)據(jù)到達(dá)的順序等。但由于TCP/IP需要保證連接及數(shù)據(jù)傳輸?shù)目煽浚虼丝赡軙?huì)犧牲一些性能。

3.UDP/IP是一種不保證數(shù)據(jù)一定到達(dá)的網(wǎng)絡(luò)數(shù)據(jù)傳輸協(xié)議。UDP/IP并不直接給通信雙方建立連接,而是發(fā)送發(fā)到網(wǎng)絡(luò)上進(jìn)行傳遞。由于UDP/IP不建立連接,并且不能保證數(shù)據(jù)傳輸?shù)目煽浚虼诵阅苌媳憩F(xiàn)相對(duì)較好,但是可能會(huì)出現(xiàn)數(shù)據(jù)丟失以及數(shù)據(jù)亂序的現(xiàn)象。

4.TCP/IP和UDP/IP可用于完成數(shù)據(jù)的傳輸,但是要完成系統(tǒng)間通信,還需要對(duì)數(shù)據(jù)進(jìn)行處理。列如讀取和寫入數(shù)據(jù),按照標(biāo)準(zhǔn)分為同步IO和異步IO兩種。其中同步IO中最常用的是BIO(Blocking IO)和NIO(Non-Blocking IO)

5.從程序角度而言,BIO就是當(dāng)發(fā)起IO的讀取或?qū)懖僮鲿r(shí),均為阻塞方式,只有當(dāng)程序讀到了流或?qū)⒘鲗懭氩僮飨到y(tǒng)后才釋放資源。f.NIO是基于事件驅(qū)動(dòng)思想的,實(shí)現(xiàn)上通常采用Reactor模式,從程序角度而言,當(dāng)發(fā)起IO的讀或?qū)懖僮鲿r(shí),是非租塞的。

基于Java包

  • TCP/IP

(BIO)Socket ServerSocket一連接一線程.一個(gè)socket需要一個(gè)線程處理。建立連接、讀數(shù)據(jù),寫數(shù)據(jù)的操作都可能阻塞。為了支持并發(fā)連接需要線程池

(NIO)SocketChannel ServerSocketChannel服務(wù)端一個(gè)線程監(jiān)聽連接的事件,一個(gè)或多個(gè)線程來監(jiān)聽網(wǎng)絡(luò)讀寫事件。當(dāng)有實(shí)際的網(wǎng)絡(luò)流讀寫事件發(fā)生后,再放入線程池中處理。一請(qǐng)求一線程.NIO的明顯好處就是不需要為每一個(gè)socket分配一個(gè)線程,而可以在一個(gè)線程中處理多個(gè)scoket。

  • UDP/IP
  • Multicast

組播(Multicast)傳輸:在發(fā)送者和每一接收者之間實(shí)現(xiàn)點(diǎn)對(duì)多點(diǎn)網(wǎng)絡(luò)連接。如果一臺(tái)發(fā)送者同時(shí)給多個(gè)的接收者傳輸相同的數(shù)據(jù),也只需復(fù)制一份的相同數(shù)據(jù)包。它提高了數(shù)據(jù)傳送效率。減少了骨干網(wǎng)絡(luò)出現(xiàn)擁塞的可能性。

開源框架

  • Netty
  • Mina(apache,基于java NIO,對(duì)外屏蔽了JavaNIO的復(fù)雜性)

性能角度

連接管理

連接池連接復(fù)用短連接、長(zhǎng)連接

基于遠(yuǎn)程調(diào)用方式的系統(tǒng)間通信

遠(yuǎn)程調(diào)用方式應(yīng)該可能的是系統(tǒng)間的通信和系統(tǒng)內(nèi)部一樣,讓使用者感覺調(diào)用遠(yuǎn)程同調(diào)用本地一樣,但其實(shí)并沒有辦法做到完全透明。由于遠(yuǎn)程調(diào)用帶來的網(wǎng)絡(luò)問題、超時(shí)問題,序列化反序列化問題、復(fù)雜調(diào)試問

基于java包

  • RMI(Remote Method Invocation)

原理:client----[proxy]----->封裝對(duì)象、序列化為流<----[TCP/IP BIO]---->反序列化、調(diào)用----->反射調(diào)用實(shí)例對(duì)象

  • webservice

開源框架

  • Spring RMI(簡(jiǎn)單就實(shí)現(xiàn)RMI方式的java遠(yuǎn)程調(diào)用)
  • Apache CXF

性能角度

  • 反射
  • 序列化、反序列化

消息通信

  • rabbitmq
  • kafka

大型分布式應(yīng)用架構(gòu)基礎(chǔ)

單體架構(gòu)

在java領(lǐng)域可以理解為一個(gè)javaweb應(yīng)用。

分布式架構(gòu)

什么是傳統(tǒng)的分布式架構(gòu)?簡(jiǎn)單來說,按照業(yè)務(wù)垂直切分,每個(gè)應(yīng)用都是單體架構(gòu),通過API相互調(diào)用。

面向服務(wù)的SOA架構(gòu)

  • 背景:

在構(gòu)建了共用業(yè)務(wù)邏輯系統(tǒng)和拆分系統(tǒng)后,最明顯的問題就是系統(tǒng)之間如何交互。如果不控制會(huì)出現(xiàn)系統(tǒng)之間存在多種交互方式:http、TCP/IP+NIO、Hessian、RMI、WebService等;同步異步都可能出現(xiàn),這會(huì)導(dǎo)致開發(fā)人員每訪問一個(gè)共用業(yè)務(wù)邏輯系統(tǒng)或拆分出來的系統(tǒng),都有可能需要學(xué)習(xí)不同交互方式;同時(shí)也會(huì)造成各開發(fā)團(tuán)隊(duì)重復(fù)造輪子,提供不同交互方式用的框架,這對(duì)于應(yīng)用的性能可用性而言帶來了極大的挑戰(zhàn)。

  • 關(guān)于SOA

面向服務(wù)的家否是一種軟件體系結(jié)構(gòu),其應(yīng)用程序的不同組件通過網(wǎng)絡(luò)上的協(xié)議向其他提供服務(wù)和消費(fèi)服務(wù)。簡(jiǎn)單來說,soa是不同業(yè)務(wù)建立不同的服務(wù),服務(wù)之間的數(shù)據(jù)交互可以通過服務(wù)接口分級(jí),這樣松散耦合提高服務(wù)的可重用性,也讓業(yè)務(wù)邏輯變得可組合,并且每個(gè)服務(wù)根據(jù)適應(yīng)情況作出合理的分布式部署,從而讓服務(wù)變得規(guī)范、高性能、高可用。soa架構(gòu)中兩個(gè)主要角色:服務(wù)提供者(provider)和服務(wù)消費(fèi)者(consumer).阿里開源的Dubbo是soa的典型實(shí)現(xiàn)。

微服務(wù)架構(gòu)

將單一程序開發(fā)成一個(gè)微服務(wù),每個(gè)微服務(wù)運(yùn)行在自己的進(jìn)程中,并使用輕量級(jí)機(jī)制通信,通常采用HTTP RestFul API.這些服務(wù)圍繞業(yè)務(wù)能力來劃分構(gòu)建的,并通過全完自動(dòng)化部署機(jī)制來獨(dú)立部署。這些服務(wù)可以使用不同的編程需要,以及不同數(shù)據(jù)存儲(chǔ)技術(shù),以保證最低限度的集中式管理。

SOA和微服務(wù)架構(gòu)的區(qū)別

SOA往往與企業(yè)服務(wù)總線(ESB)聯(lián)系在一起,主要原因在于SOA的實(shí)施思路是根據(jù)ESB模式來整合集成大量單一龐大的系統(tǒng),這是soa主要的落地方式。微服務(wù)相對(duì)于和ESB聯(lián)系在一起的SOA顯示輕便敏捷得多,微服務(wù)將復(fù)雜的業(yè)務(wù)組件化,實(shí)際也是一種面向服務(wù)思想的體現(xiàn)。對(duì)于微服務(wù)來說,它是SOA的一種體現(xiàn),但是它比ESB實(shí)現(xiàn)的SOA更加輕便、敏捷和簡(jiǎn)單。

 以上就是動(dòng)力節(jié)點(diǎn)小編介紹的"Java分布式基礎(chǔ)學(xué)習(xí)指南",希望對(duì)大家有幫助,如有疑問,請(qǐng)?jiān)诰€咨詢,有專業(yè)老師隨時(shí)為您服務(wù)。  

提交申請(qǐng)后,顧問老師會(huì)電話與您溝通安排學(xué)習(xí)

免費(fèi)課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: 国产3344永久在线观看视频 | 老司机午夜影院 | 一级毛片免费不卡 | 涩涩99| 国产成人亚洲精品91专区手机 | 色视频在线| 国产成人精品无缓存在线播放 | 日本不卡一区二区 | 日韩亚洲视频 | 中文欧美一级强 | 色婷婷5月精品久久久久 | 国产国语高清在线视频二区 | 奇米网狠狠网 | 亚洲欧美一区二区三区在线播放 | 三级aa久久 | 真实偷清晰对白在线视频 | 久久91精品国产91久久户 | ijzzijzz精的女人美女 | 在线看片a | 国产精品真实对白精彩久久 | 久草免费新视频 | 久久精品国产免费一区 | 青青久久久国产线免观 | 国产大片中文字幕在线观看 | 国产99在线观看 | 大学生一一级毛片在线播放 | 欧美精品国产一区二区 | 日本一级毛片一级裸片 | 久久精品青草社区 | 欧美精品免费看 | 在线综合 亚洲 欧美中文字幕 | 欧美亚洲日本在线 | 久久精品视频免费在线观看 | 伊人涩涩| 久久精品国产6699国产精 | 操她视频网站 | 四虎在线免费视频 | 久久久久夜| 亚洲久久在线观看 | 性感美女一级毛片 | 污视频在线看网站 |