分布式应用概述二

1、概述

    1.1  大型应用通常会拆分为多个子系统来实现;

        对于java来说,这些子系统可能部署在同一台机器的多个不同的JVM中,也可能部署在不同的机器上

        但这些子系统又不是完全独立的,要相互通信来共同实现业务功能

    1.2  对于分布式java应用,通常有2种典型的方法来是实现:

          1.1.1  基于消息方式

                当系统之间要通信时,就向外发送消息,消息可以是字节流、字节数组、甚至是java对象,其他系统接收到消息后则进行相应的业务处理;

                消息方式的系统间通信,通常基于网络协议来实现,常用的实现系统间通信的协议有:TCP/IP、UDP/IP;

                TCP、UDP可用于完成数据的传输,但要完成系统间通信,还需要对数据进行处理。例如,读取、写入数据,按照POSIX标准分为同步IO、异步IO;

                  1.1.1.1  BIO

                          当发起IO的读或写操作时,均为阻塞方式,只有当程序读到了流或者将流写入OS后,才会释放资源;

                  1.1.1.2  NIO

                          基于事件驱动的思想,通常采用Reactor模式,当发起IO的读或写操作时,是非阻塞的;

                          只有当Socket有流可读或可写入Socket时,OS会相应地通知应用程序进行处理,应用再将流读取到缓冲区或写入OS;

                          对于网络IO而言,主要有3种事件:连接建立、流读取、流写入;

                  1.1.1.3  AIO

                          基于事件驱动思想,通常采用Proactor模式;

                          和NIO不同,当进行读写操作时,只须调用API的read、write即可,这2种方法均为异步;

                          对于read操作而言,当有流可读取时,OS会将可读的流传入read方法的缓冲区,并通知应用程序;

                          对于write操作而言,当OS将write方法传递的流写入完毕时,OS主动通知应用程序;

                          较之NIO而言,AIO一方面简化了程序的编写,流的读写都由OS来代替完成;另一方面省去了NIO中程序要遍历事件通知队列的代价

    

          1.1.2  基于远程调用方式

                当系统之间要通信时,可通过调用本地的一个java接口的方法,透明地调用远程的java实现,具体的实现细节由java或框架完成,这种方式在java中主要用来实现基于RMI、WebService的应用

2、分布式java应用实现:

    1.1  消息方式  

          1.1.1  基于java自身技术实现消息方式的系统间通信:

                TCP+BIO;

                TCP+NIO;

                UDP+BIO;

                UDP+NIO;

          1.1.2  基于开源框架实现消息方式的系统间通信:

                           

                          

原文地址:https://www.cnblogs.com/anpeiyong/p/10648336.html

时间: 2024-11-07 14:45:44

分布式应用概述二的相关文章

杨森翔:春节文化大观上编 第三章 春节古诗词 目录 第一节:春节诗词概述 一、 除夕诗词概述 二、元日诗词概述 三、 元宵诗词概述 第二节:春节古诗词拾萃

杨森翔:春节文化大观上编 第三章 春节古诗词 目录 第一节:春节诗词概述 一. 除夕诗词概述 二.元日诗词概述 三. 元宵诗词概述 第二节:春节古诗词拾萃 一.腊祭诗词 二.祭灶诗词 三.除夕诗词 四.元旦诗词 五.人日诗词 六.元宵诗词 第一节:春节古诗词概述 中国的春节,作为除旧迎新的节日,时间相当长,从年前的腊月二十三,天空中就似乎弥漫了节日的气息.这种节日的气氛,在保持传统风俗较好的地方,甚至会持续到二月二龙抬头的时候,但欢度春节的高潮,应该说是自除夕始一直到上元之夜.因此,历代歌咏和反

Quartz2D的简单使用概述(二)

接上一篇,继续纪录Quartz2D的一些简单的用法. 举例1:绘制文字         创建一个字符串对象和一个用来给这个字符串对象设置相关属性的字典,使用字符串的绘制方法将它绘制到某个位置或点即可. 矩形的绘制这里不再赘述,主要写一下如何设置文字的属性字典: NSMutableDictionary *dict = [NSMutableDictionary new]; dict[NSForegroundColorAttributeName] = [UIColor redColor];    //

Service概述 二使用Service的示例

一.Service概述 API中关于Service的描述如下: A Service is an application component that can perform long-running operations in the background and does not provide a http://brand.yoka.com/cosmetics/boss/commentreply19139863.htm http://brand.yoka.com/cosmetics/boss

Java基础概述——二维数组

二维数组 所谓二维数组就是数组中的数组,它的定义格式和一维数组很像. 格式一:int[][] arr = new int[3][4]; [3]:该数组中有三个一维数组 [4]:每个一维数组的长度为4 格式二:int[][] arr = new int[3][]; 这种格式没有定义出每个一维数组的长度,需要自己去定义,arr[0] = new int[2];所以这种方法比较麻烦,不常用 格式三:int[][] arr = {{1,2,3},{4,5},{6,7,8},{9,0}}; 这种定义方式简

程序设计概述二

变量 变量的本质实为声明内存地址的别名,用易于理解操作的名称代替实际存储的数据.变量的声明,则知识声明了变量本身,而没有为其开辟内存.只有在赋值的时候才会真正的开辟内存赋值,并将内存地址返回给变量.变量的声明如:string message; 变量的赋值则用等号实现,例如message=“Hello world!”; 数据类型的运算 数据类型的运算主要包括算术运算,比较运算,逻辑运算. 算术运算主要是指加减乘除等运算,归根到底则是加和移位运算,最终也就是二进制的计算了.比较特殊的自增自减运算,注

Cesium 概述 (二) 空间数据可视化

                                                              空间数据可视化 Cesium提供Entity API来绘制空间数据,例如点.标记.标签.线.3D模型.形状.立体形状(volume). Entity API简介 Cesium提供两类API: (1)面向图形开发人员的底层API,通常称为"Primitive API".该API暴露最小限度的抽象,使用图形学术语,具有很大的灵活性,需要具有图形学编程的知识 (2)高级

Aircrack-ng: (1) 概述

作者:枫雪庭 出处:http://www.cnblogs.com/FengXueTing-px/ 欢迎转载 目录 一.概述 二.工具与命令介绍 Linux命令 (1) ifconfig (2) macchanger (3) iwconfig (4) iwlist Aircrack-ng 工具 (1) airmon-ng (2) airodump-ng (3) aireplay-ng (4) aircrack-ng 其他Aircrack-ng工具 一.概述 Aircrack-ng是一款用于破解无线

性能调优概述

大纲: 一.概述 二.什么是性能调优?(what) 三.为什么需要性能调优?(why) 四.什么时候需要性能调优?(when) 五.什么地方需要性能调优?(where) 六.什么人来进行性能调优?(who) 七.怎么样进行性能调优?(How) 八.总结 注,硬件配置:CUP Xeon E5620 x 2 8核心, 内存 16G , 硬盘 RAID 10,操作系统: CentOS 6.4 x86_64(64位). 一.概述 本来呢,这篇博文上个星期就应该写好了,但最近项目比较紧,晚上老是加班,于是

文本分类概述

转自:http://blog.csdn.net/csdwb/article/details/7082066 一概述 二特征选择 三分类器 一.概述 文本分类在文本处理中是很重要的一个模块,它的应用也非常广泛,比如:垃圾过滤,新闻分类,词性标注等等.它和其他的分类没有本质的区别,核心方法为首先提取分类数据的特征,然后选择最优的匹配,从而分类.但是文本也有自己的特点,根据文本的特点,文本分类的流程为:1.预处理:2.文本表示及特征选择:3.构造分类器:4.分类.下面分别介绍每个模块. 1. 预处理