同步与异步调用。什么是同步调用?什么是异步调用?异步调用和同步调用有什么区别?

3 篇文章 1 订阅
订阅专栏

目录

一)同步调用:

二)异步调用:

三)使用建议:


一)同步调用:

支付服务调用订单服务时,只有当订单服务执行完成之后,才会接着调用仓储服务,以此类推,直到支付服务需要的全部服务都执行完毕之后才会给用户返回执行成功指令,所需时间较长。

存在问题:

1、耦合度高。给系统添加新功能时,必须修改原来的代码,例订单服务调用成功之后要给用户发一个短信,此时就必须去修改订单服务的代码。

2、性能下降。调用者的等待时间=每个子系统调用的时间之和。

3、资源浪费。每个服务在调用完成后等待响应的过程中不能释放请求所占用的资源,并发强度下及其浪费系统资源。

4、级联失败。当仓储服务出现故障之后,之后的短信服务就无法调用了,因为存在阻塞,只有仓储服务完成之后才会调用短信服务。

二)异步调用:

同样调用者调用支付服务之后,系统会立即通知Broker,之后Broker就会通知依赖于支付服务的所有服务,这些服务同时执行,不存在互相等待。只要支付服务将消息推送给Broker此次程序就相当于执行完毕。

优点 :

1、服务解耦。仓储服务执行之后不想再调用短信服务了,不用修改代码,直接将短信服务删除即可。

2、吸能提升。之前的同步调用500ms,异步调用只需60ms

3、没有级联失败问题。仓储服务损坏不影响其他服务的执行。

4、流量削峰。下图中假设订单服务能同时处理2两个,仓储服务能同时处理1个,此时一下子来了3个支付服务,则broker会将两个订单服务分配过去,剩下的那一个在队列等待,将一个仓储服务分配过去两外两个在队列等待。起到了数据缓冲的作用。

 将高并发转化为低并发:

 缺点:

1、对Broker的可靠性,安全性,吞吐能力有很高的要求。

2、依赖于Broker,一旦Borker崩溃整个微服务都崩溃了。

3、架构复杂,业务没有明显流程线,不易追踪管理。

三)使用建议:

1、想立刻得到结果,就必须使用同步调用。因为异步只是通知系统让系统要办这件事,但是什么时候办完用户并不知道,而同步不一样,同步是等待执行完之后才算调用完毕。

2、对吞吐量、并发、低耦合关系,则使用异步调用。

同步调用异步调用WebService
09-03
本文给大家介绍webservice同步调用异步调用同步调用就是一个同步操作会阻塞整个当前的进程,直到这个操作完成才能执行下一段代码,异步调用不会阻塞启动操作的调用线程,调用程序必须通过轮流检测,或者等待完成...
解析C#中委托的同步调用异步调用(实例详解)
09-05
本文将深入探讨C#中委托的同步调用异步调用,以及如何在实际编程中利用这两种调用方式。 同步调用是默认的调用方式,通过调用委托的`Invoke`方法来执行。在上面的示例中,`handler.Invoke(1, 2)`会立即执行`Add`...
同步调用异步调用
happymff的博客
03-21 8719
同步调用异步调用 什么是同步调用?什么是异步调用同步调用就是客户端等待调用执行完成并返回结果。异步调用就是客户端不等待调用执行完成返回结果,不过依然可以通过回调函数等接收到返回结果的通知。如果客户端并不关心结果,则可以变成一个单向的调用。这个过程有点类似于Java中的callable和runnable接口,我们进行异步执行的时候,如果需要知道执行的结果,就可以使用callable接口,并且可...
同步调用以及异步调用--学习笔记
yoyouyang的博客
06-03 435
同步调用以及异步调用--学习笔记什么是同步调用异步调用异步调用应用场景:使用方法: 什么是同步调用异步调用同步调用就是提交完任务后,在原地等待任务执行完毕,有运行结果或返回值后再执行下一步,同步调用下任务是串行执行。如图所示: 以上代码,并没有使用异步调用,所以它会等待一个线程运行完毕,才会运行下一个,结果如下图所示: 异步调用主要用来提升程序性能的,异步会增加系统的开销(新建一个线...
同步和异步,进程,线程和协程之间的区别和联系
当我把这件事情做出来的时候,我想要的东西就已经拿到了
06-21 4378
同步和异步、阻塞和非阻塞 异步: 多任务, 多个任务之间执行没有先后顺序,可以同时运行,执行的先后顺序不会有什么影响,存在的多条运行主线 同步: 多任务, 多个任务之间执行的时候要求有先后顺序,必须一个先执行完成之后,另一个才能继续执行, 只有一个主线 阻塞:从调用者的角度出发,如果在调用的时候,被卡住,不能再继续向下运行,需要等待,就说是阻塞 非阻塞: 从调用者的角度出发, 如果在调用的时候,...
异步调用 概念解释
路漫漫 修远兮
10-21 1816
定 因为是转载文章 在此标明出处,以前有文章是转的没标明的请谅解,因为有些已经无法找到出处,或者与其它原因。 如有冒犯请联系本人,或删除,或标明出处。 因为好的文章,以前只想收藏,但连接有时候会失效,所以现在碰到好的直接转到自己这里。 原文 出处http://baike.baidu.com/view/185289.htm 定定义 asynchronous
Spring Boot 中的 @RabbitListener 注解是什么,原理,如何使用
u013749113的博客
07-01 8507
RabbitListener 注解是 Spring AMQP 框架中的一个关键组件,它可以将一个方法标记为 RabbitMQ 的消息监听器。在 Spring Boot 应用程序中,可以使用 @RabbitListener 注解来监听队列,并在接收到消息时执行指定的方法。在本文中,我们介绍了 @RabbitListener 注解的原理、使用方法和常见应用场景。通过使用 @RabbitListener 注解,可以方便地实现异步任务处理、发布订阅模式等功能。
C#同步异步调用方法实例
09-04
C#同步异步调用方法实例...本文通过一个简单的示例程序,演示了C#中的同步异步调用,并对两者的区别和优缺点进行了比较和分析。通过本文,读者可以更好地理解C#中的同步异步调用,并在实际开发中更好地应用它们。
C# 委托的三种调用示例(同步调用 异步调用 异步回调)
09-04
ginInvoke的最后一个...同步调用适合于简单快速的任务,而异步调用和回调更适合于处理可能耗时的任务,特别是那些不应阻塞用户界面的操作。了解并熟练掌握这些调用模式,有助于编写出高效、响应性良好的C#应用程序。
springrabbitmq中使用@RabbitListener实现监听消息-传统spring-springmvc项目整合rabbitmq
weixin_48470176的博客
12-11 4422
前言 现在java项目使用rabbitmq大多都使用spring-boot,但由于有些传统的Springmvc项目中需要改造引入rabbitmq,这一块的资料比较少,质量也差,官方文档也。。。,本人整理由自己学习也共给大家参考,请大家根据实际情况选择使用。 使用配置手动监听简单,百度下资料也有很多。有强迫症的人肯定接受不了这种每次增加一个队列都需要改一下配置文件的傻瓜式操作。 本章也只讲如何在传统Spring项目中(非Springboot)使用@RabbitListener注解来实现监听 如何使用@
使用异步方式调用同步方法(实例详解)
09-04
.NET Framework 允许您异步调用任何方法。为此,应定义与您要调用的方法具有相同签名的委托;公共语言运行时会自动使用适当的签名为该委托定义BeginInvoke和EndInvoke方法
RabbitMQ
范高伦的博客
10-16 555
一. 什么叫消息队列? 消息(Message) 是指在应用间传送的数据。消息可以非常简单,比如只包含文本字符串,也可以更复杂,可能包含嵌入对象。 消息队列(Message Queue) 是一种应用间的通信方式,消息发送后可以立即返回,由消息系统来确保消息的可靠传递。消息发布者只管把消息发布到 MQ 中而不用管谁来取,消息使用者只管从 MQ 中取消息而不管是谁发布的。这样发布者和使用者都不用知道对方...
【Spring AMQP】基于 Spring AMQP 实现简单、工作队列模型,发布订阅模型 Fanout、Direct、Topic ,以及更改 AMQP 的消息转换器
最新发布
qq_61635026的博客
10-06 458
分布式系统中,消息队列是一种常见的通信方式,用于实现不同模块之间的解耦、异步通信。Spring AMQP 是 Spring 框架对 AMQP(高级消息队列协议)的支持,提供了丰富的 API 和注解,使得在 Spring 项目中使用消息队列变得更加简便。本文将介绍如何基于 Spring AMQP 实现简单队列模型、工作队列模型,以及发布订阅模型的 Fanout、Direct、Topic 的实现。同时,我们还会探讨 AMQP 的消息转换器,以及如何更改默认的消息转换器。
支付:同步和异步的区别
weixin_43078114的博客
05-22 5150
一.概念 同步:发送方发出数据后,等接收方发回响应以后才发下一个数据包的通讯方式。 (类似打电话) 异步:发送方发出数据后,不等接收方发回响应,接着发送下个数据包的通讯方式。 (类似发短信) 支付中的同步和异步:指的是用户支付后,服务器获取支付结果的两种不同方法。这两种方法是相互独立的,各有优劣,相辅相成。 二:区别(以支付宝支付为例) 1.同步回调只有一次,异步回调可以有多次 详解:同步回调只有一次,那这一次的结果就是最终结果,回调成功就是成功,回调失败就是失败;异步回调如果失败,在失效时间内会继续
RabbitMQ详解(三):消息模式(fanout、direct、topic、work)
weixin_45181611的博客
05-10 3119
消息模式详解
同步调用异步调用
likeatree的专栏
05-15 4943
----------------------------------------转帖原文部分---------------------------------http://www.cnblogs.com/jambol/archive/2007/11/07/951798.html同步所谓同步,就是在发出一个功能调用时,在没有得到结果之前,该调用就不返回。按照这个定义,其实绝大多数函数都是同步调用
同步调用异步调用、回调的简单理解
可乐不加冰_sir的专栏
03-23 4938
1、同步调用同步调用是一种阻塞式调用可以形象理解为:考试,当一道题没有解出来,绝对不会去做下一题。  即一段代码逻辑没有执行完毕,代码会一直等待,而不会去执行下一段代码逻辑。2、异步调用异步调用是一种非阻塞式调用可以形象理解为:考试,当这道题没有解决时,可以跳过这道题 去看下一题,而当这道题有思路的时候 可以返回解决这道题。3、回调回调是解决异步函数执行结果的处理方法。在异步调用的时候,如果希望将...
异步调用异步调用同步委托和异步委托
07-27
异步调用同步调用是指在编程中进行函数或方法调用时的不同方式。 同步调用是指程序按照顺序执行,当一个函数或方法调用发生时,程序会等待该调用完成后再继续执行后续的代码。这意味着程序会阻塞在函数调用处,直到函数返回结果或执行完毕。 异步调用则是指程序在进行函数或方法调用时,不会等待该调用完成。相反,它会继续执行后续的代码,而不阻塞程序的执行。异步调用通常会使用回调函数、任务队列或事件驱动等机制来处理异步操作的结果。 例如,在一个网络请求中,同步调用会导致程序在发送请求后一直等待服务器响应,直到收到响应后才进行下一步操作。而异步调用则可以在发送请求后立即继续执行后续代码,当收到服务器响应时再处理响应结果。 关于委托,同步委托和异步委托是指在事件处理中对委托对象的调用方式的区别同步委托是指在触发事件时,委托对象的调用同步进行的。也就是说,触发事件的代码会等待委托对象执行完毕后再继续执行后续代码。 异步委托则是指在触发事件时,委托对象的调用是异步进行的。触发事件的代码会立即继续执行后续代码,而不会等待委托对象执行完毕。 异步委托通常与异步调用结合使用,以实现并发处理或提高程序的响应性能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
写文章

热门文章

  • npm安装时卡在sill idealTree buildDeps,npm安装速度慢,npm安装卡在一个地方不动 73258
  • VUE子组件如何改变父组件传来的值,以及VUE子组件如何修改父组件的值,以及父组件修改子组件的值 29964
  • Java链接PostgreSql数据库及基本使用 19476
  • Uniapp实现自定义组件 18293
  • WEB网页版计算器(HTML、CSS、JavaScript实现) 12797

分类专栏

  • 数据库 14篇
  • 算法与数据结构 10篇
  • Java 18篇
  • Linux 10篇
  • 操作系统 4篇
  • VUE 10篇
  • C/C++ 3篇
  • 风袖 9篇
  • 前端 1篇
  • SpringBoot 16篇
  • 小程序 10篇
  • MyBatis 3篇
  • 网络 3篇
  • Git 3篇
  • mySQL 4篇
  • WEB开发 7篇
  • Python 8篇

最新评论

  • 微信小程序真机调试不能访问本地API

    秀发靓丽美美程序小白: 已解决,感谢表情包

  • Uniapp实现自定义组件

    我真的是个菜鸟,求大佬带!: 为什么我把自定义组件的名称设置为main,不生效呢?(我的/pages/下面也有个叫main的)

  • 微信小程序真机调试不能访问本地API

    ghdjhhgf: 真的可以,太感谢了

  • Python安装face_recognition搭建人脸识别系统(超简洁,附使用),windows环境安装face_recognition,windows安装dlib。

    瑟瑟发抖的小杜: 安装dlib 和 face_recognition的时候多了一个G的大包,下载的又慢

  • npm安装时卡在sill idealTree buildDeps,npm安装速度慢,npm安装卡在一个地方不动

    七叶06: 你解决了吗?我现在也是很卡

大家在看

  • 进程(一万字学习笔记)
  • sprintboot开发环境的热部署(IDEA2024) 608
  • 数据结构——队列(Queue)详解 599
  • python---学生通讯录
  • 大语言模型-Transformer

最新文章

  • 解决:java.lang.ClassNotFoundException: com.mysql.cj.jdbc.Driver
  • 408--计算机网络--网络层总结1
  • Java操作MinIO实现文件的上传和删除。
2023年5篇
2022年95篇
2021年7篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

PHP网站源码宝安设计公司网站荷坳建网站宝安网站搭建木棉湾外贸网站制作广州百度标王坪山推广网站南山seo排名大运至尊标王沙井外贸网站制作荷坳模板制作南澳网站优化按天扣费福永网站优化按天收费民治网站设计南联网站排名优化平湖百度关键词包年推广龙华企业网站建设民治企业网站制作爱联关键词按天扣费深圳外贸网站设计丹竹头企业网站制作爱联网站优化按天收费松岗网络营销光明网站设计模板沙井阿里店铺运营布吉网站设计模板光明外贸网站制作坪山网站优化推广南山网站关键词优化坂田网站定制福永营销型网站建设歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

PHP网站源码 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化