【分布式java應用筆記】分布式java應用


大型應用通常會拆分為多個子系統實現,對於java來說,這些子系統可能部署在同一台機器的多個不同的JVM中,也可能部署在不同的機器上,但這些子系統又不是完全獨立的,要相互通信來共同實現業務功能,對於此類java應用,我們稱之為分布式java應用。

分布式java應用的兩種實現方法:

1、基於消息方式實現系統間的通信

2、基於遠程調用方式實現系統間的通信

1、基於消息方式實現系統間的通信
當系統之間要通信時,就向外發送消息,消息可以是字節流,字節數組,甚至是Java對象,其他系統接收到消息后則進行相應的業務處理。
消息方式的系統間通信,通常基於網絡協議來實現,常用的實現系統間通信的協議有:TCP/IP和UDP/IP。要完成系統間通信,還需要對數據進行處理,讀取和寫入數據。按照POSIX分為同步IO和異步IO兩種,同步IO中最常用的是BIO(Blocking IO)和NIO(Non-Blocking IO)。在java 7中出現異步IO方式——AIO。
相關概念:
TCP/IP:
UDP/IP:
BIO:
NIO:
AIO:
分別介紹組合后的4種方式:
TCP/IP+BIO
TCP/IP+NIO
UDP/IP+BIO
UDP/IP+NIO
相關的框架技術:
Mina
2、基於遠程調用方式實現系統間的通信
當系統之間要通信時,還可以通過調用本地的一個Java接口的方法,透明地調用遠程的Java實現。這種方式在Java中主要用來實現基於RMI和WebService的應用。
相關概念:
RMI
WebService
java 6以前rmi實現均是基於TCP/IP+BIO方式。較之基於TCP/IP+NIO等實現的客戶端和服務端面簡單很多,代碼可維護性也高很多。

無論是RMI還是WebService,都封裝了網絡通信的細節,因此使用起來會較為簡單,但如果想對通信細節做一些調優或控制,也會比較麻煩。
相關的框架技術:
Spring RMI
apache CXF


===============
其他的系統間通信的技術
JMS、EJB等
===============


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM