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
    在这里插入图片描述
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

发表回复

您的电子邮箱地址不会被公开。

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