高性能
高可用
可伸缩
如何基于Java实现系统间的通信?
SOA
BIO Blocking IO 阻塞IO
NIO None-Bolcking IO 非阻塞 基于事件驱动的
AIO 异步IO 也是基于事件驱动的
1.1、基于消息方式实现系统间通信 都是以Java对象调用的方式实现的
1.1.1基于Java自有技术
TCP/IP+BIO 阻塞的TCP连接 一连接一线程
使用连接池来管理Socket
一个连接对应一个Socket,每一个Socket都都放一个新的线程中去
所以这种方式支撑的连接数是有限的
TCP/IP+NIO 一请求一线程
UDP/IP+BIO
UDP/IP+NIO
1.1.2基于开源框架实现消息方式的系统间通信
Mina
Netty
1.2基于远程调用方式
1.2.1 Java自有技术(RMI 和WebService )
RMI Remote Method Invocation
RMI 要求服务端的接口都继承Remote接口
WebService
以HTTP的方式提供服务
描述:WSDL
交互方式:SOAP SImple Object Access Prototal
如果想要对通信细节做一些处理,无论是RMI还是WebService都会比较麻烦
1.2.2 Java开源框架
Spring RMI
CXF