一) 分布式Java应用 1.1 基于消息方式实现系统间的通信 数据传输 TCP/IP 可靠的网络传输协议,首先给通信双方建立链接之后再进行数据传输,保证链接及数据传输的可靠,因此会牺牲一些性能 UDP/IP 不保证数据一定到达的网络传输协议,并不直接给通信的双方建立链接而是发送到网络上进行传递.性能表现较好但是会出现数据乱序或丢失. 数据处理 同步IO: BIO(Blocking IO) - 当发起读或者写操作时均为堵塞方式,只有当程序读到了流或者将流写入操作系统后才会释放资源 NIO(Non…
failover? NAT IP-tunneling DSR vrrp gossip 什么是2PC? 什么是3PC? 什么是Pasox? sna? dal? mpi?…
第一章主要介绍了计算机系统从集中式向分布式系统演变过程中面临的挑战,并简要介绍了ACID.CAP和BASE等经典分布式理论,主要包含以下内容: 集中式的特点 分布式的特点 分布式环境的各种问题 ACID 分布式事务 CAP和BASE理论 集中式的特点:部署结构简单(因为基于底层性能卓越的大型主机,不需考虑对服务多个节点的部署,也就不用考虑多个节点之间分布式协调问题) 分布式的特点: 分布性 对等性 并发性 缺乏全局时钟 故障总是会发生 分布式环境的各种问题: 通信异常:主要是因为网络本身的不可靠…
第一章 Java平台概论 1.Java不仅仅是个程序语言,代表解决问题的平台,代表了原厂.各个厂商.社群.开发者与用户沟通的成果. 2.Java三大平台,从J2SE.J2EE.J2ME到Java SE,Java EE,Java ME:Java SE包含四部分:JVM(Java虚拟机),JRE(Java运行环境),JDK(Java开发工具)与Java语言. 3.Java语言只是Java SE的一部分,除了语言之外,Java最重要的就是提供庞大且强大的标准API. 4.Java不仅仅是程序语言,还是…
分布式Java应用的体系结构知识简单分为: 网络通信:包括协议和IO 消息方式的系统间通信:包括基于Java包.基于开源框架.性能角度 远程调用方式的系统间通信:包括基于Java包.基于开源框架.性能角度 大型应用拆分为多个子系统来实现,这些子系统可能部署在同一台机器,或者不同机器的多个不同JVM中,每个子系统对应一个JVM.但这些子系统又不是完全独立的,要相互通信来共同实现业务功能,对于此类Java引用,我们称之为分布式Java引用.通常有两种典型的方法来实现. 基于信息方式实现系统间的通信,…
远程调用方式就是尽可能地使系统间的通信和系统内一样,让使用者感觉调用远程同调用本地一样,但其实没没有办法做到完全透明,例如由于远程调用带来的网络问题.超时问题.序列化/反序列化问题.调式复杂的问题等.基于Java自身技术在Java中实现远程调用方式的技术主要有RMI和WeService两种.RMIRMI(Remote Method Invocation)是Java用于实现透明远程调用的重要机制.在远处调用中,客户端仅有服务端提供的接口,通过此接口实现对远程服务器端的调用.远程调用基于网络通信来实…
对于大型分布式Java应用与SOA,我们可以从以下几个方面来分析: 为什么需要SOA SOA是什么 eBay的SOA平台 可实现SOA的方法 为什么需要SOA   第一个现象是系统多元化带来的问题,可采用对共用逻辑的部分进行抽象的方法,形成多个按领域划分的公用业务逻辑系统:第二个现象是系统访问量.数据量上涨后带来的典型问题,可采用拆分系统的方式来解决.在构建了共用业务逻辑系统和拆分系统后,最明显的问题就是系统之间如何交互.为了整个系统的性能.可用性等考虑,统一的交互方式就成为明显的解决方案了,S…
Java代码作为一门跨操作系统的语言,最终是运行在JVM中的,所以对于JVM的理解就变得非常重要了.整体上,我们可以从三个方面来深入理解JVM. Java代码的执行 内存管理 线程资源同步和交互机制   Java程序运行在JVM上,JVM的运行状况对于Java程序而言会产生很大的影响,因此,掌握JVM中的关键机制对于编写稳定.高性能的Java程序很重要.首先,我们看看JVM规范定义的标准结构图: JVM负责转载class文件并执行,因此,首先要掌握的是JDK如何将Java代码编译为class文件…
阅读<Java并发编程实践>一书后整理的思维导图.…
依据<Java并发编程实践>一书整理的思维导图.…