首先,说明什么是分布式Java应用? 大型应用通常会拆分为多个系统来实现,对于Java来说,这些子系统可能部署在
同一台机器的多个不同的JVM中,也可能部署在
不同的机器上,但这些子系统又不是完全独立的,而且要相互通信来实现共同的业务功能,对于此类应用,我们称之为分布式Java应用。
有两种方式可实现系统间的通信,1是:基于消息方式实现系统间的通信,2是:基于远程调用方式实现系统间的通信。
一、基于消息方式 系统之间要通信是,就向外发送信息,消息可以是字节流、字节数组、甚至是Java对象(经序列化的对象),其它系统接收到消息后则进行相应的业务逻辑。
消息方式的系统间通信,通常是基于网络协议来实现的,常用的通信的协议:TCP/IP和UDP/IP。
简要说明TCP、UDP的区别,TCP:可靠的,需先建立连接,保证数据到达的顺序,性能低一些;UDP:不可靠,无需先建立连接,不保证数据传输的可靠性,可能会出现数据丢失或数据乱序的现象,性能高于一些。
TCP/IP和UDP/IP用于完成数据的传输,但要完成系统间的通信,还需对数据进行处理,例如IO操作。可把IO分为同步IO和异步IO,其中同步IO最常用的是BIO和NIO,异步IO包括AIO,均基于事件驱动思想-------(对于网路IO,事件有三种:连接建立、流读取、流写入)。
-------
基于Java自身技术实现消息方式的系统间通信有如下四种,TCP/IP+BIO,TCP/IP+NIO,
UDP/IP+BIO,UDP/NIO.
基于开源框架实现信息方式的系统间通信,如Mina框架,基于Java NIO构建,同时支持TCP/IP,UDP/IP.
二、基于远程调用方式 系统之间要通信时,可通过调用本地的一个Java接口的方法,透明地调用远程的Java实现。具体的细节由Java或框架完成,这种方式在Java中主要用来实现基于RMI、WebService的应用。
远程调用,就是尽可能地使系统之间的通信和系统内一样,让使用者感觉到调用远程同调用本地一样,
-------
基于Java自身技术实现远程调用方式的系统间通信,技术主要有RMI(轻量级)和WebService两种。
基于开源框架实现远程调用方式的系统间通信,如Spring RMI--实现RMI、CXF--实现WebService。
总结:本文只是简单的讲解了Jaba中实现系统间的相关技术、基本原理及使用方法,本文并未提到Java中可用来实现系统间通信的技术,如JMS、EJB等。
##本文摘自《分布式Java应用基础与实践》林昊 著。
分享到:
相关推荐
分布式Java应用基础与实践是Java开发领域中的一个重要主题,它涉及到如何通过网络将多个独立的计算机节点连接起来,协同处理任务,以实现系统的高可用性、高性能和可伸缩性。在Java中,分布式系统主要依赖于一些核心...
本书介绍了编写分布式Java应用涉及的众多知识点,分为了基于Java实现网络通信、RPC;基于SOA实现大型分布式Java应用;编写高性能Java应用;构建高可用、可伸缩的系统四个部分,七章内容来进行介绍,在这一本不算厚的...
本篇将深入探讨分布式Java应用的基础知识和实践要点,通过源码分析帮助读者理解如何构建和优化分布式系统。 1. 分布式系统概念 分布式系统是由多个相互协作的计算机节点组成的网络系统,这些节点通过网络通信,共享...
《分布式Java应用 完整版》是一本深入探讨如何利用Java技术构建分布式系统的权威指南。全书分为四个主要部分,全面覆盖了从基础的网络通信到复杂的系统架构设计的各个环节,旨在帮助读者掌握构建高性能、高可用和可...
本书介绍了编写分布式Java应用涉及的众多知识点,分为了基于Java实现网络通信、RPC;基于SOA实现大型分布式Java应用;编写高性能Java应用;构建高可用、可伸缩的系统四个部分,七章内容来进行介绍,在这一本不算厚的...
分布式Java应用指的是利用Java语言开发的,运行在多个物理或虚拟机器上,通过网络通信来协作处理请求的应用程序。在分布式应用中,Java是广泛使用的一种语言,原因在于Java的跨平台特性和强大的网络库。下面介绍...
分布式Java应用是现代企业级软件开发中的重要组成部分,它涉及到多台计算机...通过学习和掌握这些知识,开发者将能够设计和实现复杂的企业级分布式Java应用,应对各种挑战,如高并发、大数据处理和系统间的协同工作。
### 实现分布式Java应用的挑战与解决方案 尽管Java提供了丰富的库和技术栈来支持分布式应用的开发,但在实际应用中仍面临许多挑战,例如: - **一致性问题**:在分布式系统中保持数据的一致性是一项复杂任务,需要...
分布式Java应用是现代互联网行业中广泛讨论的话题,尤其在大型企业级系统中,为了处理高并发、海量数据等问题,采用分布式架构成为了必要的选择。林昊,作为知名的Java技术专家,他的著作《分布式Java应用》深入浅出...
【基于Dubbo的分布式系统架构】是现代互联网应用中常用的一种设计模式,它旨在通过服务化的方式提升系统的可扩展性和可维护性。本项目是一个【简易版支付系统】的源码实现,它利用了Dubbo作为核心的服务治理框架,为...
分布式Java应用基础与实践是Java开发领域中的一个重要话题,它涉及到如何在多个计算机节点上协同工作,以提高系统的可扩展性、可靠性和性能。在这个完整版的资源中,包括了一本名为“分布式JAVA应用 基础与实践.pdf...
在本资源包中,"分布式Java应用完整版"提供了全面的学习资料,包括视频教程和电子书,帮助开发者深入理解并掌握分布式系统的设计与实现。 首先,我们来探讨“分布式”这个概念。分布式系统是由多个独立的计算机节点...
分布式JAVA应用基础与实践是Java开发领域中一个重要的主题,主要涵盖了如何在大规模网络环境中设计、部署和管理Java应用程序。本书由林昊编著,旨在帮助开发者深入理解分布式系统的基本概念,掌握Java在分布式环境中...
分布式Java应用基础与实践是Java开发中的重要领域,它涵盖了多台计算机之间的协作,通过网络进行数据交换和服务调用,以实现大规模系统的高效运行。在Java世界中,分布式技术广泛应用于构建可扩展、高可用的互联网...
通过以上知识点的学习,开发者可以更好地理解和掌握分布式Java应用的设计与实现,从而构建出高效、稳定且易于扩展的系统。《分布式java应用:基础与实践》这本书正是为此目的而编写,旨在为Java开发者提供全面的...
分布式事务是一个复杂的问题,它涉及到分布式系统架构设计、网络通信、数据一致性以及系统性能等多方面的考量。在实际应用中,需要根据具体业务场景和需求选择合适的事务处理策略,并且可能需要对现有技术进行一定的...
分布式JAVA应用+基础与实践是Java开发者在面对大型、高并发、高可用系统时不可或缺的知识领域。本资源提供了全面的理论知识与实践经验,旨在帮助Java程序员深入理解和掌握分布式系统的设计与实现。以下将对其中涉及...
本文将深入探讨大型分布式系统中的Java应用,包括其核心概念、技术框架以及实现策略。 首先,我们要理解什么是分布式系统。分布式系统是由多台独立的计算机通过网络进行通信和协作,共同完成一个任务的系统。这些...
从给定的文件信息来看,标题和描述都指向了“Java分布式学习笔记01分布式Java应用”,这显然是关于Java在分布式环境下的应用和技术的学习资料。虽然提供的部分内容由于格式问题难以直接解析,但我们可以根据标题、...
本书介绍分布式Java应用涉及的知识点,分为基于Java实现网络通信、RPC;基于SOA实现大型分布式Java应用;编写高性能Java应用;构建高可用、可伸缩的系统四个部分,共七章内容。作者结合自己在淘宝网的实际工作经验...