Java分布式应用:Java分布式通讯方式

Java分布式应用:Java分布式通讯方式第一部分Java分布式通讯的方式1.基于消息方式实现系统间通讯a.数据传输部分:TCP/IP、UDP/IPTCP(端口号为23)与UDP(端口号为53)的区别1、TCP面向连接(如打电话要先拨号建立连接);UDP是无连接的,即发送数据之前不需要建立连接2、TCP提供可靠的服务。也就是说,通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达;UDP尽最大努力交付,即不保证…

大家好,又见面了,我是你们的朋友全栈君。

第一部分 Java分布式通讯的方式

1.基于消息方式实现系统间通讯

a.数据传输部分 : TCP/IP 、UDP/IP
TCP(端口号为23)与UDP(端口号为53)的区别

  • TCP面向连接(如打电话要先拨号建立连接);UDP是无连接的,即发送数据之前不需要建立连接
  • TCP提供可靠的服务。也就是说,通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达;UDP尽最大努力交付,即不保证可靠交付
  • TCP面向字节流,实际上是TCP把数据看成一连串无结构的字节流;UDP是面向报文的UDP没有拥塞控制,因此网络出现拥塞不会使源主机的发送速率降低(对实时应用很有用,如IP电话,实时视频会议等)
  • 每一条TCP连接只能是点到点的;UDP支持一对一,一对多,多对一和多对多的交互通信
  • TCP首部开销20字节;UDP的首部开销小,只有8个字节
  • TCP的逻辑通信信道是全双工的可靠信道,UDP则是不可靠信道

总结:

  • TCP的优势在于其安全性
  • UDP的优势在于其性能

b.数据处理部分:BIO、NIO、AIO
同步阻塞BIO: 连接线程 (缓存、自己处理)
同步非阻塞NIO:请求线程(立即、自己处理)
异步非阻塞AIO:有效请求线程(立即、委托OS)

同步 vs 异步
同步:JAVA自己处理IO读写
异步: 将IO读写委托给OS(系统)

阻塞 (不立即返回) vs 非阻塞(立即返回)
阻塞:利用缓冲区先读写资源 ,再通知应用 相对而言响应速度慢
非阻塞: 线程在处理之前可能要等待后端资源, 响应速度快

总结:

  • NIO和AIO都是由事件驱动,要进行事件注册及扫描。
  • BIO的实现方式主要是通过Socket套接字的方式。
  • mysql数据库采用的就是BIO,而Netty采用的是NIO。

2基于远程调用方式实现系统间通讯

  1. RPC:采用C/S方式,跨语言跨平台
  2. webservice:请求应答机制,跨系统跨平台
  3. RMI: 降低客户端与服务器的耦合性,java远程接口调用;跨虚拟机
  4. JMS:JAVA消息服务,点对点和发布订阅模型 如ActiveMQ
    在这里插入图片描述
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/133335.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • kettle工具使用教程_iphone实用配置工具问题

    kettle工具使用教程_iphone实用配置工具问题kettle工具的使用

    2022年10月9日
    3
  • 利用SecureCRTPortable远程连接虚拟机

    利用SecureCRTPortable远程连接虚拟机利用SecureCRTPortable远程连接虚拟机1.出现的问题​ 打开SecureCRTP之后,输入正确的ip地址却无法连接到虚拟机。​ 2.解决调试​ 1.通过windows的cmd去ping虚拟机,同样还是ping不通2.查看网络适配器中VMnet8(该网卡是作为虚拟机与本机交互的一个网卡)3.错误原因:网卡中的ip地址与虚拟机中的地址相同,网关与虚拟机不相同​ 更改网卡中的ip地址使得…

    2022年6月14日
    38
  • HDU4876ZCC loves cards(多校题)

    HDU4876ZCC loves cards(多校题)

    2022年1月21日
    46
  • win10jdk环境变量配置[通俗易懂]

    win10jdk环境变量配置[通俗易懂]在win10上安装jdk后,发现命令行中java-version命令可运行,但javac则提示“javac不是内部或外部命令……”,经过尝试发现需要将两个bin的路径都设置到环境变量中,而且需要使用绝对路径,不可以引用其他环境变量,例如我的环境变量设置是:C:\ProgramFiles(x86)\Java\jdk1.8.0_112\jre\bin;C:\ProgramFiles(

    2022年7月21日
    11
  • 浅谈贝叶斯和MCMC

    浅谈贝叶斯和MCMC 转自:http://www.xuyankun.cn/2017/05/13/bayes/ Abstract:最近课业内的任务不是很多,又邻近暑假了,就在网上搜了一些有关于机器学习和深度学习的课程进行学习。网上的资料非常繁多,很难甄别,我也是货比三家进行学习。这是这个系列的第一个笔记,是关于贝叶斯和MCMC一些数学原理的讲解和代码的实现,希望能够深入浅出,叙述的容易让人理解。…(阅…

    2022年5月5日
    37
  • TP5与TP3.X对比

    TP5与TP3.X对比

    2021年10月12日
    39

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号