• 分布式Java应用与实践 (一)


    一) 分布式Java应用

    1.1 基于消息方式实现系统间的通信

    数据传输

    TCP/IP 可靠的网络传输协议,首先给通信双方建立链接之后再进行数据传输,保证链接及数据传输的可靠,因此会牺牲一些性能

    UDP/IP 不保证数据一定到达的网络传输协议,并不直接给通信的双方建立链接而是发送到网络上进行传递。性能表现较好但是会出现数据乱序或丢失。

    数据处理

    同步IO:

    BIO(Blocking IO) - 当发起读或者写操作时均为堵塞方式,只有当程序读到了流或者将流写入操作系统后才会释放资源

    NIO(Non-blocking IO) - 基于事件驱动的思想,采用Reactor模式实现。发起读或者写操作时为非堵塞方式,当Socket有流可读或者可写入Socket时,操作系统会通知应用程序进行处理,应用再将流读取到缓冲区或写入操作系统。

    异步IO: AIO -  基于事件驱动的思想,采用Proactor模式实现。当进行读写操作时,只需直接调用API的read或write方法,这两种方法都是异步的。有流可读入时,操作系统会将可读的流传入read方法的缓冲区,并通知应用程序。操作系统将write方法传递的流写入完毕时,操作系统会主动通知应用程序。

    关于BIO, NIO, AIO,参考http://ihenu.iteye.com/blog/2247618

    基于Java自身包实现的系统间通信方式有TCP/IP+BIO, TCP/IP+BIO, TCP/IP+NIO, UDP/IP+BIO, UDP/IP+NIO

    2. 基于远程调用方式实现系统间的通信

    可通过调用本地的一个Java借口方法,透明的调用远程的Java实现。主要有RMI和WebService.

  • 相关阅读:
    【python学习笔记02】python的数据类型2
    元器件选型(一)ESD、TVS参考资料
    【python学习笔记01】python的数据类型
    你不知道的vue生命周期钩子选项(三)
    vue源码解析之选项合并(二)
    vue源码解析之选项合并(一)
    聊聊var与let 在window下面的区别(除开作用域)
    浅谈JavaScript中的防抖和节流
    Redhat6.4下安装Oracle10g
    Ubuntu Server 14.04 集成
  • 原文地址:https://www.cnblogs.com/codingforum/p/6177830.html
Copyright © 2020-2023  润新知