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

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

同步与异步消息的区别

1、同步消息

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

2、异步消息

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

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

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

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

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

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

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

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

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

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

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

这个问题没有答案。


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

posted @ 2017-12-17 22:03  萧闹闹  阅读(14821)  评论(1编辑  收藏  举报