[基础]同步消息和异步消息传递的区别?

在系统交互时候选择同步还是异步有时候很让人困扰,希望通过阅读这篇文章可以帮助更好的理解同步与异步。

同步与异步消息的区别

1、同步消息

同步消息传递涉及到等待服务器响应消息的客户端。消息可以双向地向两个方向流动。本质上,这意味着同步消息传递是双向通信。即发送方向接收方发送消息,接收方接收此消息并回复发送方。发送者在收到接收者的回复之前不会发送另一条消息。

2、异步消息

异步消息传递涉及不等待来自服务器的消息的客户端。事件用于从服务器触发消息。因此,即使客户机被关闭,消息传递也将成功完成。异步消息传递意味着,它是单向通信的一种方式,而交流的流程是单向的。

如果这还不好理解,那继续往下读...

异步:比如A是字符集第一个字母,唯一可行的方法就是向Z走,这意味着是单向通信。

同步:比如同步是从字母S开始,可能是朝向可能是A或Z,这意味着是双向通信。

同步和异步消息传递的有点和缺点

异步消息传递有一些关键优势。它们能够提供灵活性并提供更高的可用性——系统对信息采取行动的压力较小,或者以某种方式立即做出响应。另外,一个系统被关闭不会影响另一个系统。例如,电子邮件——你可以发送数千封电子邮件给你的朋友,而不需要她回复你。

异步的缺点是它们缺乏直接性。没有直接的相互作用。考虑一下与你的朋友在即时通讯或电话上聊天——除非你的朋友及时回复你,否则这不是聊天或谈话。

异步消息传递允许更多的并行性。由于进程不阻塞,所以它可以在消息传输时进行一些计算。

异步消息传递引入了几个问题。如果消息无法传递会发生什么?如果消息在传输中丢失了怎么办?

与异步消息传递相关的另一个问题与缓冲有关。如果在操作系统管理的空间中对消息进行异步处理,则进程可能会通过大量消息向数据库中写入数据。

哪个更好——同步还是异步?

这个问题没有答案。



如果感到对您有帮助没准儿你就会赞赏,iOS 专用赞赏通道:

时间: 2024-10-12 20:22:09

[基础]同步消息和异步消息传递的区别?的相关文章

同步IO与异步IO的区别

同步IO与异步IO的区别 首先要明确一点:不同IO模型之间的差别本质上是CPU的参与方式 这里重点说一下各自的应用场景 如何选择同步还是异步呢? 主要有这么几个指标供参考 1. 并发数量 2. 接收字节数 3. 处理请求所需CPU时间 我们一个一个来考察 并发数 并发低的时候同步IO与异步IO差别不大 并发高时差别会比较明显,这要表现在 1. 开启线程数:如并发1000时,同步IO要开启1000个线程,1000个线程要占用很多内存,这是其一,其二1000个线程间切换的时间也是很可观的:异步IO则

POST和GET以及同步请求和异步请求的区别

一.HTTP是应用层的网络传输协议,对于HTTP的请求方式主要流行的GET请求与POST请求对于GET请求与POST请求的区别 1.GET请求,服务器以及参数都会出现在请求接口中,也就是请求参数也是接口的一部分,而POST请求在接口中只有服务器地址,而参数会作为请求提交给服务器. 2.因为GET请求会出现在请求接口中,所以信息容易被捕获,安全性低,POST请求参数封装在请求体中,作为二进制流进行传输,不易被捕获,安全性高. 3.GET在请求时,接口的字节数有限制,支持小数据的提交,而POST请求

同步请求和异步请求的区别

先解释一下同步和异步的概念 同步是指:发送方发出数据后,等接收方发回响应以后才发下一个数据包的通讯方式.  异步是指:发送方发出数据后,不等接收方发回响应,接着发送下个数据包的通讯方式. 同步通信方式与异步通信的概念 同步通信方式要求通信双方以相同的时钟频率进行,而且准确协调,通过共享一个单个时钟或定时脉冲源保证发送方和接收方的准确同步,效率较高:异步通信方式不要求双方同步,收发方可采用各自的时钟源,双方遵循异步的通信协议,以字符为数据传输单位,发送方传送字符的时间间隔不确定,发送效率比同步传送

ajax同步请求与异步请求的区别

ajax 区别: async:布尔值,用来说明请求是否为异步模式.async是很重要的,因为它是用来控制JavaScript如何执行该请求. 当设置为true时,将以异步模式发送该请求,JavaScript代码将继续执行而不再等待响应,且必须使用一个事件处理函数来监控请求的响应. 如果将async设置为false,则将以同步模式发送该请求, JavaScript将等接收到响应后再继续执行剩余代码. 这意味着如果响应时间很长,则用户在浏览器收到响应之前是将无法与其交互的. 基于这个原因,Ajax应

UML建模中简单消息、同步消息和异步消息

两种消息在UML图中的表示方法如图: 1.同步方式 两个通信应用服务之间必须要进行同步,两个服务之间必须都是正常运行的.发送程序和接收程序都必须一直处于运行状态,并且随时做好相互通信的准备. 发送程序首先向接收程序发起一个请求,称之为发送消息,发送程序紧接着就会堵塞当前自身的进程,不与其他应用进行任何的通信以及交互,等待接收程序的响应,待发送消息得到接收程序的返回消息之后会继续向下运行,进行下一步的业务处理. 2.异步方式 两个通信应用之间可以不用同时在线等待,任何一方只需各自处理自己的业务,比

两副图让你彻底明白同步IO和异步IO的区别

众所周知,NodeJs采用的事单线程异步式IO的架构,并且是事件驱动的. 假设我们有一项工作,有两个计算部分,一个IO部分,IO部分占用的时间比计算时间多得多,如果我们使用同步式IO,那我们想要实现高并发必须开多个线程. 而使用异步,单线程即可胜任.

同步请求和异步请求的区别(理解ajax用)

同步请求:发送方发送数据包后,等待接收方发回响应之后,才能发送下一个数据包的通信方式. 异步请求:发送方发送数据包后,不用等待接收方发回响应,就可以发送下一个数据包的通信方式. 同步通信:要求通信双方在相同的时钟频率下,并且准确协调,是通过共享单个时钟或定时脉冲源来保证双方准确同步,效率高. 异步通信:不要求通信双方同步,双方可采用各自的时间源,遵循异步通信协议,以字符为数据传输单位,发送字符的时间间隔不确定,发送效率较同步通信低. 同步请求:通过单线程服务,该线程发送请求,在服务器运行时阻塞,

同步(Synchronous)和异步(Asynchronous)方法的区别

同步(Synchronous)和异步(Asynchronous)方法的区别 在讲之前,我们先来看<Computer Organization>中对于同步和异步的一个例子: 同步读写和异步读写的区别: 同步读写:以读为例 处理器在第一个时钟周期将一个内存地址放到地址总线中,这一过程可能涉及到多条状态总线.当地址线建立后,处理器发出一个信号. 处理器在第二个时钟周期对内存发出读的信号,内存中的一个模块识别输送过来的地址 一个时钟周期后,该模块将数据放到数据总线上 处理器读取数据并取消读的信号. 异

什么是同步逻辑和异步逻辑,同步电路和异步电路的区别是什么(转)

1.什么是同步逻辑和异步逻辑,同步电路和异步电路的区别是什么?     同步逻辑是时钟之间有固定的因果关系.异步逻辑是各时钟之间没有固定的因果关系.     电路设计可分类为同步电路和异步电路设计.同步电路利用时钟脉冲使其子系统同步运作,而异步电路不使用时钟脉冲做同步,其子系统是使用特殊的“开始”和 “完成”信号使之同步.由于异步电路具有下列优点--无时钟歪斜问题.低电源消耗.平均效能而非最差效能.模块性.可组合和可复用性--因此近年来对异步 电路研究增加快速,论文发表数以倍增,而Intel P