哪一个是同步通信或异步通信?为啥?

Posted

技术标签:

【中文标题】哪一个是同步通信或异步通信?为啥?【英文标题】:Which one is synchronous or asynchronous communication ? And Why?哪一个是同步通信或异步通信?为什么? 【发布时间】:2019-01-14 12:40:34 【问题描述】:

我对给定场景的两种通信都感到困惑。我觉得每个列表项都可以是同步通信。

订单服务调用运输服务进行运输。

用户从用户界面 (UI) 服务购买项目导致 调用订单服务。 用户界面 (UI) 服务调用目录服务以获取信息 关于它需要渲染的所有项目。

【问题讨论】:

【参考方案1】:

同步 = 同步

发送方等待接收方的响应以继续进行。

发送方和接收方都应处于活动状态。

发送方向接收方发送数据,因为它需要立即响应才能继续处理。

当您同步执行某项任务时,您会等待它完成,然后再继续执行其他任务。

异步 = 不同步

发送方不等待接收方的响应

接收器可能处于非活动状态。

一旦 Receiver 处于活动状态,它将接收并处理。

发送方将数据放入消息队列中,不需要立即响应即可继续处理。

当您异步执行某项任务时,您可以在它完成之前继续执行另一个任务。

就你而言,

目录服务 订单服务 --> 发货服务

1) UI 必须从目录服务中获取项目详细信息(同步,因为它立即需要项目)

2) 一旦选择了所有项目,UI 必须调用 Order 服务。(同步/异步,取决于用户操作)

用户可以添加购物车以备将来使用(或)收藏夹(或)以立即处理订单。

3) 一旦购物车集合中存在所有商品,它必须调用 shippingService。 (异步)

付款应该是同步的。您需要确认。

假设所有付款和其他事情都完成,它会调用发货服务

交付是异步的,因为它不能立即得到确认。可能需要 2 天的延迟等。

【讨论】:

【参考方案2】:

所有三个示例都将被视为异步,因为它们会根据因果关系提示响应 - 调用和响应。虽然所有这三个都可能同时发生,但它们本身并不是同步的。

同步通信同时发生,就像两个人在线编辑同一个文档一样。每个编辑器同时读写,但不会以任何方式打断对方。

同步通信的最佳示例是电话交谈。所有连接方可以同时听到(接收)和说话(发送),虽然人类很难同时执行这两种操作,但电话连接本身可以同时提供这两种操作。

异步就像一个双向收音机。您必须停止传输才能接收。

【讨论】:

以上是关于哪一个是同步通信或异步通信?为啥?的主要内容,如果未能解决你的问题,请参考以下文章

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

同步通信和异步通信

同步通信和异步通信

同步与异步通信

同步通信和异步通信

同步通信和异步通信