`

分布式Java应用---实现系统间的通信

    博客分类:
  • Java
阅读更多
   首先,说明什么是分布式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实现网络通信、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应用涉及的知识点,分为基于Java实现网络通信、RPC;基于SOA实现大型分布式Java应用;编写高性能Java应用;构建高可用、可伸缩的系统四个部分,共七章内容。

    分布式java应用开发

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

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

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

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

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

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

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

    Linux C++ socket网络编程----------即时通信系统.zip

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

    Laravel-fastdfs是分布式文件存储系统FastDFS的通用composer组件.zip

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

    Java Netty 分布式开发 框架

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

    Java思维导图xmind文件+导出图片

    基于消息方式的系统间通信 理解通信协议传输过程中的序列化和反序列化机制 基于框架的RPC通信技术 WebService/ApacheCXF RMI/Spring RMI Hession 传统RPC技术在大型分布式架构下面临的问题 分布式架构下的...

    2019Java微服务架构 2.0-全网首发-网盘地址

    Cloud\千锋java教程:056 Nacos-分布式配置中心.mp4章节8-Spring-Cloud\千锋java教程:057 Nacos-多环境配置.mp4章节8-Spring-Cloud\千锋java教程:058 Sentinel-分布式系统的流量防卫兵.mp4章节8-Spring-Cloud\千锋...

    java jdk-api-1.6 中文 chmd

    java.applet 提供创建 applet 所必需的类和 applet 用来与其 applet 上下文通信的类。 java.awt 包含用于创建用户界面和绘制图形图像的所有类。 java.awt.color 提供用于颜色空间的类。 java.awt.datatransfer ...

Global site tag (gtag.js) - Google Analytics