java分布式

什么是java分布式应用?

一个大型的系统往往被分为几个子系统来做,一个子系统可以部署在一台机器的多个jvm上,也可以部署在多台机器上。但是每一个系统不是独立的,不是完全独立的。需要相互通信,共同实现业务功能。

主要手段

分布式应用用到的技术:网络通信,基于消息方式的系统间通信和基于远程调用的系统间通信。
缺点就是会增加技术的复杂度。
基于消息的系统通信方式,主要是利用的网络协议,比如tcp和ip协议。
系统间的通信还需要对数据进行处理,比如同步io和异步io。
远程调用实现系统间的通信:通过调用本地的java接口的方法来透明的调用远程java的实现。具体的细节有框架来实现。
java基于消息方式实现分布式的应用:tcpip bio,tcpipanio,udpipbio,udpipnio。
多个客户端访问服务器端的情况下,会遇到两个问题:建立多个socket的,占用过多的本地资源,服务器端要承受巨大的来访量;创建过多的socket,占用过多的资源,影响性能。
通常解决这种问题的办法是,使用连接池,既能限制连接的数量,又能避免创建的过程,可以很大的提高性的问题。缺点就是竞争量大的时候造成激烈的竞争和等待。需要注意的是,要设置超时时间,如果不这样的话,会造成无限制的等待。
为了解决这个问题,采用一连接一线程的方式,同时也会带来副作用,内存占用过多。
tcpip异步通信:java nio 通道技术实现。

你可能感兴趣的:(java分布式)