我们知道大型的应用通常都会将整个系统拆分成多个子系统来实现,这些系统往往都会部署在不同的服务器上,对于java来说也可能是在不同的JVM上,但是这些子系统并不是独立的,他们需要通过互相通信来实现既定的业务功能,对于这样的java应用我们可以称之为java分布式应用。
因此在谈分布式之初,我们需要简单的介绍下,如何实现系统间的通信,一般来说,对于java分布式应用目前系统间的通信主要有两种典型的方式。1,基于消息方式实现系统间的通信,2,基于远程调用方式实现系统间的通信。
(1)消息方式的系统间通信:当系统接收到的某一条消息时则会根据该消息进行相应业务的处理。其主要基于网络协议来实现,常用的网络通信协议有:TCP/IP和UDP/IP两种,至于TCP和UDP之间的区别在此就不再鳌诉。另外一个方面,网络数据的读入,和写出方式又分为同步和异步两种。同步是我们最常用的BIO-阻塞式IO方式,即当发起IO的读或写操作时,均为阻塞式的,直到有数据读取或者写出时才会释放资源。相反的NIO是异步IO方式,当发起IO的读或写操作时是非阻塞式的,当有数据流读入或者写出时操作系统会提示相应的程序进行处理。
因此基于消息方式的系统间通信主要有四种:TCP/IP+BIO TCP/IO+NIO UDP/IP+BIO UDP/IP+NIO
(2) 基于远程调用方式实现系统间通信,远程调用的就是尽可能的使系统间的通信和系统内一样,让使用者感觉在使用一个完整的系统,但这其中也存在着一定的问题,因为系统间的调用都是要依靠网络来通信,因此如何将对象间的调用在网络之间来实现也是相当复杂的。对于java来说,目前实现远程调用的方式主要有RMI(Remote Method Invocation)和WebService两种。RMI是java用于实现透明远程调用的重要机制。在远程调用中,客户端仅有服务器端提供的借口。通过此借口实现对远程服务器端的调用。WebService是一种跨语言的系统间交互标准,在这个标准中,对外提供功能的一方以HTTP方式提供服务,该服务采用WSDL(Web Service Description Language)描述,在这个文件中描述服务所使用的协议,所期望的参数,返回参数格式等。调用端和服务端通过SOAP(Simple Object Access Protocol)方式来进行交互。
连接地址:http://lavasoft.blog.51cto.com/62575/91679/
分享到:
相关推荐
在现代企业级应用中,尤其是在云计算和微服务架构盛行的今天,掌握Java分布式应用的设计原则和技术至关重要。下面将详细介绍Java分布式应用程序设计的相关知识点。 1. **分布式系统基础**: - 分布式系统的概念:...
Java分布式应用程序设计是一种构建大型、可扩展且高可用性系统的方法。在Java中,通过利用网络中的多台计算机,可以创建能够跨越多个节点共享资源、处理任务和存储数据的复杂应用。这种技术允许应用程序的不同部分在...
《大规模分布式存储系统:原理解析与架构实战》与《分布式服务框架原理与实践》这两本书深入探讨了现代IT行业中至关重要的两个主题:分布式存储系统和分布式服务框架。这两者都是构建可扩展、高可用性及高性能应用的...
在深入探讨Java分布式应用和面向服务架构(SOA)之前,我们首先需要理解这两个概念的基本含义及其在现代IT系统中的重要性。 #### Java分布式应用 Java分布式应用是指利用Java编程语言构建的、运行在多台计算机上的...
Java分布式系统架构是一种将应用程序分布在多个计算节点上运行的技术,以提高系统的可伸缩性、容错性和性能。源码分析对于理解这种架构至关重要,尤其是对于开发者来说,它提供了深入学习和自定义系统的机会。本资源...
本书介绍了编写分布式Java应用涉及的众多知识点,分为了基于Java实现网络通信、RPC;基于SOA实现大型分布式Java应用;编写高性能Java应用;构建高可用、可伸缩的系统四个部分,七章内容来进行介绍,在这一本不算厚的...
Java分布式应用学习笔记 在Java世界中,分布式应用是指由多个独立组件通过网络通信协同工作的系统。这种架构模式常用于构建大规模、高可用性、可扩展的系统。本笔记将深入探讨Java分布式应用的核心概念、技术和实践...
本文将深入探讨一个基于分布式系统的JAVA聊天系统,它实现了客户端与服务器端的有效通信,并具备完善的容错机制。我们将从系统设计、核心技术、通信协议以及容错策略等多个角度进行详细解析。 首先,我们要理解什么...
在IT行业中,Java分布式应用程序设计是一项关键技能,尤其在大型企业级系统开发中不可或缺。本资源包含一本名为“JAVA分布式程序设计”的电子书以及相关的源码示例,旨在帮助开发者深入理解和实践Java在分布式环境中...
4. **分布式服务框架**:讲解如Spring Cloud、Dubbo等Java分布式服务框架的原理和实践,包括服务发现、负载均衡、熔断机制等。 5. **微服务架构**:讨论微服务思想,如何将大型应用拆分为多个独立的服务,以及Java...
在本资源包中,"分布式Java应用完整版"提供了全面的学习资料,包括视频教程和电子书,帮助开发者深入理解并掌握分布式系统的设计与实现。 首先,我们来探讨“分布式”这个概念。分布式系统是由多个独立的计算机节点...
Java实现的分布式文件存储系统,如"ctjdfs",提供了一种在多台服务器之间分散存储、管理和访问文件的方法,从而解决了单点存储的性能瓶颈和容错问题。下面我们将详细探讨这个系统的关键知识点。 首先,"ctjdfs"是...
Java分布式应用是现代企业级软件开发中的重要组成部分,它涉及到多个系统的协同工作,以提高服务的可用性、可扩展性和性能。以下是对标题和描述中所述知识点的详细说明: 1. **系统间通信**: - **基于消息方式**...
### Java分布式应用基础 在分布式系统中,Java是一种广泛使用的编程语言,它提供了丰富的库和框架来支持分布式计算。Java的跨平台特性使得它在分布式环境中特别受欢迎,因为可以确保代码在不同的硬件和操作系统上的...
Java分布式KV(Key-Value)存储系统是现代互联网服务中不可或缺的一部分,其高效、可扩展的特性使其在大数据处理、缓存服务等领域广泛应用。本篇文章将深入剖析一款基于Java实现的分布式KV存储系统的源码,帮助...
分布式Java应用基础与实践是Java开发领域中的一个重要主题,它涉及到如何通过网络将多个独立的计算机节点连接起来,协同处理任务,以实现系统的高可用性、高性能和可伸缩性。在Java中,分布式系统主要依赖于一些核心...
Java作为一门广泛使用的编程语言,其在分布式应用领域的应用非常广泛。本篇内容将深入探讨分布式Java应用的基础概念、设计原则以及实战技巧。 1. 分布式系统概述 分布式系统是由多台独立的计算机节点通过网络相互...