分布式Java应用---实现系统间的通信

[b]首先,说明什么是分布式Java应用?[/b] 大型应用通常会拆分为多个系统来实现,对于Java来说,这些子系统可能部署在[color=darkblue]同一台机器的多个不同的JVM中[/color],也可能部署在[color=darkblue]不同的机器上[/color],但这些子系统又不是完全独立的,而且要相互通信来实现共同的业务功能,对于此类应用,我们称之为分布式Java应用。
有两种方式可实现系统间的通信,1是:基于消息方式实现系统间的通信,2是:基于远程调用方式实现系统间的通信。

[b] 一、基于消息方式[/b] 系统之间要通信是,就向外发送信息,消息可以是字节流、字节数组、甚至是Java对象(经序列化的对象),其它系统接收到消息后则进行相应的业务逻辑。
消息方式的系统间通信,通常是基于网络协议来实现的,常用的通信的协议:TCP/IP和UDP/IP。
简要说明TCP、UDP的区别,TCP:可靠的,需先建立连接,保证数据到达的顺序,性能低一些;UDP:不可靠,无需先建立连接,不保证数据传输的可靠性,可能会出现数据丢失或数据乱序的现象,性能高于一些。
TCP/IP和UDP/IP用于完成数据的传输,但要完成系统间的通信,还需对数据进行处理,例如IO操作。可把IO分为同步IO和异步IO,其中同步IO最常用的是BIO和NIO,异步IO包括AIO,均基于事件驱动思想-------(对于网路IO,事件有三种:连接建立、流读取、流写入)。


-------
基于Java自身技术实现消息方式的系统间通信有如下四种,TCP/IP+BIO,TCP/IP+NIO,
UDP/IP+BIO,UDP/NIO.
基于开源框架实现信息方式的系统间通信,如Mina框架,基于Java NIO构建,同时支持TCP/IP,UDP/IP.

[b] 二、基于远程调用方式[/b] 系统之间要通信时,可通过调用本地的一个Java接口的方法,透明地调用远程的Java实现。具体的细节由Java或框架完成,这种方式在Java中主要用来实现基于RMI、WebService的应用。
远程调用,就是尽可能地使系统之间的通信和系统内一样,让使用者感觉到调用远程同调用本地一样,


-------
基于Java自身技术实现远程调用方式的系统间通信,技术主要有RMI(轻量级)和WebService两种。
基于开源框架实现远程调用方式的系统间通信,如Spring RMI--实现RMI、CXF--实现WebService。


总结:本文只是简单的讲解了Jaba中实现系统间的相关技术、基本原理及使用方法,本文并未提到Java中可用来实现系统间通信的技术,如JMS、EJB等。


##本文摘自《分布式Java应用基础与实践》林昊 著。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值