来源:http://blog.csdn.net/yinwenjie 1.全文提要 系统间通信本来是一个很大的概念,我们首先重通信模型开始讲解.在理解了四种通信模型的工作特点和区别后,对于我们后文介绍搭建在其上的各种通信框架,集成思想都是有益的. 目前常用的IO通信模型包括四种(这里说的都是网络IO):阻塞式同步IO.非阻塞式同步IO.多路复用IO.和真正的异步IO.这些IO模式都是要靠操作系统进行支持,应用程序只是提供相应的实现,对操作系统进行调用. 上篇中,首先介绍传统的阻塞式同步IO和非阻塞…
7.异步IO 上面两篇文章中,我们分别讲解了阻塞式同步IO.非阻塞式同步IO.多路复用IO 这三种IO模型,以及JAVA对于这三种IO模型的支持.重点说明了IO模型是由操作系统提供支持,且这三种IO模型都是同步IO,都是采用的"应用程序不询问我,我绝不会主动通知"的方式. 异步IO则是采用"订阅-通知"模式:即应用程序向操作系统注册IO监听,然后继续做自己的事情.当操作系统发生IO事件,并且准备好数据后,在主动通知应用程序,触发相应的函数: 和同步IO一样,异步IO…
4.多路复用IO模型 在"上篇"文章中,我们已经提到了使用多线程解决高并发场景的问题所在,这篇文章我们开始 4-1.现实场景 我们试想一下这样的现实场景: 一个餐厅同时有100位客人到店,当然到店后第一件要做的事情就是点菜.但是问题来了,餐厅老板为了节约人力成本目前只有一位大堂服务员拿着唯一的一本菜单等待客人进行服务. 那么最笨(但是最简单)的方法是(方法A),无论有多少客人等待点餐,服务员都把仅有的一份菜单递给其中一位客人,然后站在客人身旁等待这个客人完成点菜过程.在记录客人点菜内容…
Java作为一种面向对象的,跨平台语言,其对象.内存等一直是比较难的知识点.而且很多概念的名称看起来又那么相似,很多人会傻傻分不清楚.比如本文要讨论的JVM内存结构.Java内存模型和Java对象模型,这就是三个截然不同的概念,但是很多人容易弄混. 首先,这三个概念是完全不同的三个概念.本文主要目的是对这三个概念加以区分以及做简单的介绍.而这每一个知识点都是又都是比较复杂的.以后会单独写文章做详细介绍. Jvm内存结构 我们都知道,Java代码是要运行在虚拟机上的,而虚拟机在执行Java程序的过…
1.概述 经过了详细的信息格式.网络IO模型的讲解,并且通过JAVA RMI的讲解进行了预热.从这篇文章开始我们将进入这个系列博文的另一个重点知识体系的讲解:RPC.在后续的几篇文章中,我们首先讲解RPC的基本概念,一个具体的RPC实现会有哪些基本要素构成,然后我们详细介绍一款典型的RPC框架:Apache Thrift.接下来我们聊聊服务治理和DUBBO服务框架.最后总结一下如何在实际工作中选择合适的RPC框架. 2.RPC概述 2-1.什么是RPC RPC(Remote Procedure…
架构设计:系统间通信(10)——RPC的基本概念 1.概述经过了详细的信息格式.网络IO模型的讲解,并且通过JAVA RMI的讲解进行了预热.从这篇文章开始我们将进入这个系列博文的另一个重点知识体系的讲解:RPC.在后续的几篇文章中,我们首先讲解RPC的基本概念,一个具体的RPC实现会有哪些基本要素构成,然后我们详细介绍一款典型的RPC框架:Apache Thrift.接下来我们聊聊服务治理和DUBBO服务框架.最后总结一下如何在实际工作中选择合适的RPC框架. 2.RPC概述2-1.什么是RP…
许多以Java多线程开发为主题的技术书籍,都会把对Java虚拟机和Java内存模型的讲解,作为讲授Java并发编程开发的主要内容,有的还深入到计算机系统的内存.CPU.缓存等予以说明.实际上,在实际的Java开发工作中,仅仅了解并发编程的创建.启动.管理和通信等基本知识还是不够的.一方面,如果要开发出高效.安全的并发程序,就必须深入Java内存模型和Java虚拟机的工作原理,从底层了解并发编程的实质:更进一步地,在现今大数据的时代,要开发出高并发.高可用.考可靠的分布式应用及各种中间件,更需要深…
1.概述 在概述了数据描述格式的基本知识.IO通信模型的基本知识后.我们终于可以进入这个系列博文的重点:系统间通信管理.在这个章节我将通过对RMI的详细介绍,引出一个重要的系统间通信的管理规范RPC,并且继续讨论一些RPC的实现:再通过分析PRC的技术特点,引出另一种系统间通信的管理规范ESB,并介绍ESB的一些具体实现.最后我们介绍SOA:面向服务的软件架构. 2.RMI基本使用 RMI(Remote Method Invocation,远程方法调用),是JAVA早在JDK 1.1中提供的JV…
基于Java自身包实现消息方式的系统间通信的方式有:TCP/IP+BIO,TCP/IP+NIO,UDP/IP+BIO,UDP/IP+NIO.下面就这4种类型一一做个详细的介绍: 一.TCP/IP+BIO 在java中可基于Socket,ServerSocket来实现TCP/IP+BIO的系统间通信.Socket主要用于实现建立连接以及网络IO的操作,ServerSocket主要用于实现服务器端端口的监听及Socket对象的获取.基于Socket实现客户端的代码如下: public class C…
近期在给公司项目做二次重构,将原来庞大的系统拆分成几个小系统.系统与系统之间通过接口调用,系统间通信有非常多方式,如系统间通信接口做成请求controller,只是这样不方便也不安全,经常使用的方式是使用rpc技术,能够使用webservices技术等等.因为我的架构是使用spring,并且spring在集成这块做的非常不错.如hessian,blurp,webservices.httpinvoke,rmi,jms等,我这里採用的是jms技术. 废话不多说间代码. 场景描写叙述:A系统须要调用B…
接上文<架构设计:系统间通信(8)--通信管理与RMI 上篇>.之前说过,JDK中的RMI框架在JDK1.1.JDK1.2.JDK1.5.JDK1.6+几个版本中做了较大的调整.以下我们讨论的RMI工作原理都是基于JDK1.6+版本的. 3.JAVA RMI 工作原理 通过上面的两组代码,我们大概知道了RMI框架是如何使用的.下面我们来讲解一下RMI的基本原理.本人翻阅网上的众多RMI资料基本上代码都是一大抄(甚至变量名.语法错误都一样),还有很多资料存在误导读者的情况.下图描述了整个RMI框…
前言 本文是<分布式java应用基础与实践>读书笔记:另外参考了此博客,感觉讲的挺好的,尤其是其中如下内容: 另外,消息方式实现系统间通信本文不涉及.RMI则只采用spring RMI框架来实现效果,更多的则是来讲讲webService及效果. RMI (Remote Method Invocation) ----> spring RMI(配置及实现直接参考spring文档,已经很详细了) spring RMI工作原理图如下: RMI代码结构图: 服务端代码 接口Business.jav…
(接上文<架构设计:系统间通信(19)--MQ:消息协议(上)>) 上篇文章中我们重点讨论了"协议"的重要性.并为各位读者介绍了Stomp协议和XMPP协议. 这两种协议是消息队列中两种不同使用场景下的典型代表. 本文主要接续上文的篇幅,继续讨论消息队列中还有一种典型协议:AMQP协议. 3-3.AMQP协议 AMQP协议的全称是:Advanced Message Queuing Protocol(高级消息队列协议).眼下AMQP协议的版本号为 Version 1.0.这个…
1.概述 从本篇文章开始,我们将花一到两篇的篇幅介绍ESB(企业服务总线)技术的基本概念,为读者们理清多个和ESB技术有关名词.我们还将在其中为读者阐述什么情况下应该使用ESB技术.接下来,为了加深读者对ESB技术的直观理解,我们将利用Apache Camel一起搭建一个ESB技术的服务实现,虽然这个示例不能把目前主流的ESB服务实现中所有功能模块都保罗进来,但至少可以让读者看到ESB技术核心服务完整的工作方式. 2.为什么需要ESB 2-1.ESB与SOA 2-1-1.SOA SOA(Serv…
一. 回顾 做java开发的,一定对BIO,NIO,AIO通信很了解了,现在再在下面罗列一下: 同步阻塞IO(JAVA BIO):  同步并阻塞,服务器实现模式为一个连接一个线程,即客户端有连接请求时服务器端就需要启动一个线程进行处理,如果这个连接不做任何事情会造成不必要的线程开销,当然可以通过线程池机制改善.  同步非阻塞IO(Java NIO) : 同步非阻塞,服务器实现模式为一个请求一个线程,即客户端发送的连接请求都会注册到多路复用器上,多路复用器轮询到连接有I/O请求时才启动一个线程进行…
.NET中的 Overlapped 类 异步IO模型和Overlapped结构(http://blog.itpub.net/25897606/viewspace-705867/) 数据结构 OVERLAPPED结构主要用于异步I/O操作,其数据结构定义如下: typedef struct _OVERLAPPED {     DWORD Internal;     // 系统保留,存放系统设置的状态     DWORD InternalHigh; // 系统保留,存放被传输数据的长度     DW…
一.Java IO通信 名词解释: BIO通信:       采用BIO通信模型的服务端,通常由一个独立的Acceptor线程负责监听客户端连接,在接收到客户端请求后,为每一个客户端建立一个新的线程负责进行链路处理,处理完成之后,可以通过输出流返回应答给客户端,此时线程销毁.这就是典型的一次请求一次应答模式.       该模型的最大缺陷就是缺乏弹性伸缩能力,当客户端并发访问量增加以后,服务端的线程个数和客户端的并发访问数成一比一的正比关系,由于线程是Java虚拟机非常宝贵的资源,当线程数膨胀后…
基于ARM9硬件平台和嵌入式Linux系统的多功能综合通信控制系统的框架设计及各模块的功能.系统采用符合POSIX.1标准的C语言编写,实现了对下位机传送数据帧的采集.分析和存储,并能根据上位机的配置指令和数据传输指令分别对串口波特率.数据时间及手机短信号码等参数进行配置和存储数据的传输. 伴随着计算机技术的迅速发展,工业数据采集已由传统的测控电路发展为由微型计算机.接口电路.外部通用设备和工业生产对象等组成的现代数据采集与控制系统.但是以微型计算机为核心的数据采集系统也逐渐暴露出许多缺陷:体积…
http://www.cnblogs.com/bastard/archive/2012/06/08/2541944.html Android中消息系统模型和Handler Looper 作为Android中大量使用的Handler,结合Thread使其具有众多的使用形式和方法, 让我一时感觉这个东西有些玄乎,不明所以然,这到底是一个什么样的存在呢?通过网上 资料和源码的学习,这个Handler也差不多弄清楚了,现在总结下这个学习结果. 一 Handler作用和概念 通过官方文档了解到Handle…
通信与io:io是通信的端点机制: io可以是连接到文件系统的: 也可以是连接到对等端点的:…
Java实现IO通信(服务器篇) 如何利用java实现我们的通信呢?首先我们了解一下什么是通信?通信的机制是怎样的? 首先来讨论一下什么是通信?通信,指人与人或人与自然之间通过某种行为或媒介进行的信息交流与传递,从广义上指需要信息的双方或多方在不违背各自意愿的情况下采用任意方法,任意媒质,将信息从某方准确安全地传送到另方.而这里所说的通信,是在同一局域网内,一个用户给其他用户发送信息的过程. 然后通行的机制是怎么样的呢?这里的JavaIO通信是这样的,首先我们需要一台服务器,并有一个或者多个用户…
Java IO 通信 All In One Netty / WebSocket BIO 通信 BIO 即阻塞 I/O,不管是磁盘 I/O 还是网络 I/O,数据在写入 OutputStream 或者从 InputStream 读取时都有可能会阻塞. 伪异步 IO 通信 NIO通信 NIO 非阻塞同步 缓冲区 Buffer 通道 Channel 多路复用 Selector AIO 通信 AIO 非阻塞异步 连续注册读写事件和回调函数 读写方法异步 主动通知程序 NIO通信模型 https://ww…
以下的内容和之后的几篇博客只是比较初级的介绍,想要深入学习的话建议自己钻研<TCP/IP详解 卷1:协议> 1.ISO/OSI七层模型    下四层是为数据传输服务的,物理层是真正的传输数据的,数据链路层.网络层.传输层主要是写入对应数据的传输信息的        物理层:比特            设备之间的比特流的传输.物理接口.电气特性        数据链路层:帧            保存的最主要的信息是网卡的 mac 地址,mac 地址负责局域网通信的,发件人和收件人的mac 地址…
Mallory   网络模型概念浅析 网络模型一般是指OSI七层参考模型和TCP/IP四层参考模型. #只是一种设计==模型# Open System Interconnect的缩写,意为开放式系统互联. 一般都叫OSI参考模型,是ISO(国际标准化组织)组织在1985年研究的网络互联模型.该体系结构标准定义了网络互连的七层框架(物理层.数据链路层.网络层.传输层.会话层.表示层和应用层),即ISO开放系统互连参考模型.在这一框架下进一步详细规定了每一层的功能,以实现开放系统环境中的互连性.互操…
TCP/IP四层模型和OSI七层模型的概念(模型分层的作用是什么) 一.总结 一句话总结: 减轻问题的复杂程度,一旦网络发生故障,可迅速定位故障所处层次,便于查找和纠错: 在各层分别定义标准接口,使具备相同对等层的不同网络设备能实现互操作,各层之间则相对独立,一种高层协议可放在多种低层协议上运行: 能有效刺激网络技术革新,因为每次更新都可以在小范围内进行,不需对整个网络动大手术: 1.TCP/IP四层模型分别是哪四层? 应用层:应用程序间沟通的层,如简单电子邮件传输(SMTP).文件传输协议(F…
引用至:http://www.jdon.com/concurrent/actor-csp.html Akka/Erlang的actor模型与Go语言的协程Goroutine与通道Channel代表的CSP(Communicating Sequential Processes)模型有什么区别呢? 首先这两者都是并发模型的解决方案,我们看看Actor和Channel这两个方案的不同: Actor模型 在Actor模型中,主角是Actor,类似一种worker,Actor彼此之间直接发送消息,不需要经…
前言 今天和大家聊的是一个比较基础的问题,OSI七层模型和TCP/IP四层模型. 小伙伴们可能有疑问,这个东西还用写文章吗,太基础了吧,网上文章多的是,随便一搜索就能找到. 确实是这样,网上资料确实很多,但是如果面试官问你这个问题,你能很好的回答上这个问题吗? 本文就是用大白话来聊一聊这个话题,让你对它们有一个很清晰的认识. 照搬网上资料的简介 既然大家说网上资料很多,那王子也从网上给大家找到一张表格,如下: OSI七层模型 TCP/IP四层模型 对应网络协议 应用层(Application)…
[题外话] 上一篇文章介绍了3D开发基础与XNA开发程序的整体结构,以及使用Model类的Draw方法将模型绘制到屏幕上.本文接着上一篇文章继续,介绍XNA中模型的结构.BasicEffect的使用以及用户输入和界面显示的方式等,本文尽量把遇到的概念都解析清楚,但又避开复杂的数学方面的知识,希望对没有接触过3D开发的同学有所帮助. [系列索引] 从零3D基础入门XNA 4.0(1)——3D开发基础 从零3D基础入门XNA 4.0(2)——模型和BasicEffect [文章索引] Model模型…
1.OSI参考模型 1)作用 2)各层的名称和功能 2.对分层网络协议体系的理解 1)不同节点:层次组成不同,作用不同 2)横向理解:虚通信.对等实体.协议.PDU 3)纵向理解:封装与解封.服务.接口 3.TCP/IP 1)层次:与OSI模型的对应关系 2)协议:主要协议极其所在层次 4.地址 1)物理.IP.端口地址:作用,所在层次 2)单播.多播.广播地址:作用 2.1 OSI参考模型 1.ISO标准指定 OSI Open System Interconnection,开放系统互连 Ref…
OSI七层模型 为了解决网络之间的兼容性问题,实现网络设备间的相互通信,ISO于1984年提出的OSI参考模型(开放系统互连参考模型).但是由于种种原因,并没有一种完全忠实于OSI参考模型的协议族流行开来.然后美国国防局在20世纪60年代开发的ARPANET的TCP/IP协议得到了广泛应用,成了Internet的事实标准.而OSI模型则只是理论标准. OSI参考模型的层次结构[OSI七层模型] 优点 开放的标准化接口: 通过规范各个层次之间的标准化接口,是各个厂商可以自由地生产出网络产品,这种开…