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)
blank

相关推荐

  • Ubuntu 定时执行脚本

    Ubuntu 定时执行脚本一、关于crontabcron是一个Linux定时执行工具,可以在无需人工干预的情况下运行作业。在Ubuntu中,cron是被默认安装并启动的。二、例子直接上例子,来看看怎么用。需求:定时每天8点,自动执行保存在/root目录下hello.sh脚本1、方法很简单,只需编辑ect下crontab文件就行了,这个文件里存放的就是cron要执行的命令,以及定时执行的时间…

  • html表格内容居中对齐_word里表格怎么居中

    html表格内容居中对齐_word里表格怎么居中加上样式如:margin:0auto;<tablestyle=”margin:0auto;”><tr><td><span>账号:</span></td><td><inputtype=”text”v-model=’user’/></td></tr><tr><td>…

  • 格拉姆矩阵(Gram matrix)详细解读

    格拉姆矩阵(Gram matrix)详细解读目录基础知识-向量的内积Grammatrix介绍Grammatrix的应用-风格迁移一、基础知识-向量的内积1.1向量的内积定义:也叫向量的点乘,对两个向量执行内积运算,就是对这两个向

  • laravel重定向到上一个页面怎么带参数返回 withsucess 成功提示信息

    laravel重定向到上一个页面怎么带参数返回 withsucess 成功提示信息

    2021年10月26日
  • springboot事物oracle,SpringBoot 事务管理

    springboot事物oracle,SpringBoot 事务管理事务管理是项目中必不可少的一部分,使用SpringBoot时,可以很方便的配置和使用事务管理器。1.导入依赖当导入jdbc或者jpa依赖后,SpringBoot会自动分别注入DataSourceTransactionManager或JpaTransactionManager。所以我们不需要任何配置就可以使用@Transactional注解来进行事务的使用。我习惯使用jdbc,虽然Jpa有各种…

  • 各种烦人图片的整理方法_凡人烦人

    各种烦人图片的整理方法_凡人烦人各种烦人图片资料的整理整合,也帮助自己进行一下梳理,有新的内容页会随时更新,大家看着图片烦恼的也可以看下,希望对和我一样的菜鸟有帮助哈!当然对于高手来说,您的回复是我勃起的动力首先还是要喊下口号———

发表回复

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

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