`

java分布式应用之初:实现系统间通信方式简介

 
阅读更多
我们知道大型的应用通常都会将整个系统拆分成多个子系统来实现,这些系统往往都会部署在不同的服务器上,对于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应用知识点全景图)

    本书介绍了编写分布式Java应用涉及的众多知识点,分为了基于Java实现网络通信、RPC;基于SOA实现大型分布式Java应用;编写高性能Java应用;构建高可用、可伸缩的系统四个部分,七章内容来进行介绍,在这一本不算厚的...

    分布式Java应用基础与实践

    本书介绍了编写分布式Java应用涉及的众多知识点,分为了基于Java实现网络通信、RPC;基于SOA实现大型分布式Java应用;编写高性能Java应用;构建高可用、可伸缩的系统四个部分,七章内容来进行介绍,在这一本不算厚的...

    分布式Java应用 完整版 PDF

    本书介绍了编写分布式Java应用涉及的众多知识点,分为了基于Java实现网络通信、RPC;基于SOA实现大型分布式Java应用;编写高性能Java应用;构建高可用、可伸缩的系统四个部分

    分布式Java应用基础与实践(完整版)

    本书介绍分布式Java应用涉及的知识点,分为基于Java实现网络通信、RPC;基于SOA实现大型分布式Java应用;编写高性能Java应用;构建高可用、可伸缩的系统四个部分,共七章内容。作者结合自己在淘宝网的实际工作经验...

    分布式Java应用基础与实践[带目录书签]

    本书介绍分布式Java应用涉及的知识点,分为基于Java实现网络通信、RPC;基于SOA实现大型分布式Java应用;编写高性能Java应用;构建高可用、可伸缩的系统四个部分,共七章内容

    分布式JAVA应用 基础与实践

    介绍分布式Java应用涉及的知识点,分为基于Java实现网络通信、RPC:基于SOA实现大型分布式Java应用:编写高性能Java应用;构建高可用、可伸缩的系统4个部分,共7章内容。

    分布式java应用开发

    分布式移动开发总结:对Java来说,这些子系统可能部署在同一台机器的多个不同的JVM中,也可能部署在不同的机器上, 但这些子系统又不是完全独立的,要相互通信来共同实现业务功能。

    深入浅出Java分布式系统通信

     那么我详细的说下我对java分布式系统通信的理解  1.集群模式,将相同应用模块部署多份  2.业务拆分模式,将业务拆分成多个模块,并分别部署  3.存储分布式  由于分布式概念太大,我们可以缩小下讨论的...

    JAVA网络通信系统的研究与开发.rar

    在企业级应用中,Java网络通信系统常用于构建分布式系统、微服务架构等,实现不同服务之间的通信和协作。 通过研究与开发Java网络通信系统,可以实现各种网络应用的需求,为用户提供稳定、高效的网络通信服务,促进...

    MIT6.824分布式系统的C++版本实现.zip

    MIT6.824分布式系统的C++版本实现,能学到分布式系统设计、rpc使用、mapreduce、基本数据库设计、raft算法、分布式一致性等后端知识点,结合了linux系统的许多系统调用 软件开发设计:应用软件开发、系统软件开发、...

    Java Netty 分布式开发 框架

    做Java开发,现在很多场合需要分布式应用,很多通信框架的底层实现都包含Netty技术,为了更好了解,值得有兴趣的人研究一下

    Java基于Netty实现的高性能分布式IM即时通信系统源码+项目说明.tar

    Java基于Netty实现的高性能分布式IM即时通信系统源码+项目说明.tar 介绍 `RIM`是基于Netty实现的面相开发者的高性能分布式即时通信系统,保证消息的实时性、有序性、可靠性。 ## 技术栈 | 名称 | 作用 | | -------...

    我对Java分布式系统的一点认识

     分布式系统往往是把应用拆分成多个应用,每个团队维护一个应用,应用与应用通过远程过程调用或者消息中间件通信。这种系统的优点是能够做到高内聚低耦合,可以支撑业务的快速发展,缺点则是运维成本大大提高了,...

    Java-web课程项目:场地预约管理系统.zip

    软件开发设计:应用软件开发、系统软件开发、移动应用开发、网站开发C++、Java、python、web、C#等语言的项目开发与学习资料 硬件与设备:单片机、EDA、proteus、RTOS、包括计算机硬件、服务器、网络设备、存储设备...

    系统设计、分布式、数据库(MySQL、Redis)、Java 项目实战等.zip

    【Java面试+Java后端技术学习指南】:一份通向理想互联网公司的面试指南,包括 Java,技术面试必备基础知识、Leetcode、计算机操作系统、计算机网络、系统设计、分布式、数据库(MySQL、Redis)、Java 项目实战等 ...

    分布式聊天系统服务器端的C#实现.zip

    软件开发设计:应用软件开发、系统软件开发、移动应用开发、网站开发C++、Java、python、web、C#等语言的项目开发与学习资料 硬件与设备:单片机、EDA、proteus、RTOS、包括计算机硬件、服务器、网络设备、存储设备...

Global site tag (gtag.js) - Google Analytics