第一章 分布式java运用
网络通信:
通常基于网络协议实现:TCP/IP(可靠) 、UDP/IP(即时)
同步IO{
BIO(blocking IO):以阻塞方式发起IO操作
NIO(non-blockingIO):非阻塞、reactor事件驱动(Reactor将handle放到select(),等待可写就绪,然后调用write()写入数据;写完处理后续逻辑;)。
}
异步IO(1.7后支持){
AIO:practor事件驱动(Proactor调用aoi_write后立刻返回,由内核负责写操作,写完后调用相应的回调函数处理后续逻辑;
}
1.1、基于消息方式实现系统间通信
基于java包:{
TCP/IP:{
Socket/ServerSocket
SocketChannel/ServerSocketChannel
}
UDP/IP:{
DatagramSocket/DatagramPackate
DatagramChannel/ByteBuffer
}
Multicast:{
MulticastSocket/DatagramPackate
SRM
}
}
基于开源框架:Mina.
性能角度:连接管理(连接池、连接复用、短连接、长连接)
1.2、基于远程调用方式实现系统间通信
调用本地接口透明地调用远程java实现
基于java包{
RMI:UnicastRemoteObject/LocateRegister
Webservice:
}
基于开源框架:SpringRMI/Apache CXF、 Axis
性能:序列化/反序列化、反射。