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

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、对吞吐量、并发、低耦合关系,则使用异步调用。

同步调用异步调用分析
luxianping的专栏
03-05 1375
服务与服务间的调用方式分为两种同步调用异步调用同步调用可以理解为A打电话给B,需要实时响应,异步调用类似A给B发送邮件,B不需要马上回复。这两种调用方式应该说都有的优缺点。但是在面对一个高并发吞吐量的系统,异步方式比同步方式可以大大增加系统的吞吐量。A,B,C,E可以同时给F发送邮件,F可以不在线,不用立即回复。对于服务化后服务与服务之间的调用也类似这样一个原理。同步调用虽然只是耦合外部接口,实时性上会高于异步调用,但是会带来很多的问题。 1.调用方的吞吐量受限于被调用方的吞吐量,一旦某个服务响应特..
C# 委托的三种调用示例(同步调用 异步调用 异步回调)
09-04
本文将主要通过同步调用异步调用、异步回调三个示例来讲解在用委托执行同一个加法类的时候的的区别和利弊
C#同步异步调用方法实例
09-04
c#同步和异步很简单,这里给大家提供一个小例子供大家参考
解析C#中委托的同步调用异步调用(实例详解)
09-05
本篇文章是对C#中委托的同步调用异步调用进行了详细的分析介绍,需要的朋友参考下
函数的同步(synchronous)和异步(asynchronous)调用
jinanhezhuang的博客
04-28 576
在实际应用中,很多函数需要进行长时间的计算、I/O操作或等待其他进程/线程处理结果,而这些操作往往会造成程序的阻塞或耗时较长的等待,影响程序的效率和用户体验。如果使用同步调用方式,调用者必须一直阻塞等待函数返回结果,这种方式会浪费处理器时间,降低程序的效率。而异步调用则可以使得调用者无需阻塞,继续执行其他任务,当函数执行结束后再通过回调函数将结果返回给调用者,提高了程序的运行效率和并发性能。另外,在处理多进程/线程协作中,同步调用往往可控性更强,代码更易于理解和维护。
同步和异步有什么区别
Shockang的博客
04-14 1万+
写在前面 本文隶属于专栏《100个问题搞定Java并发》,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢! 本专栏目录结构和文献引用请见100个问题搞定Java并发 解答 同步和异步通常用来形容一次方法调用同步方法调用一旦开始,调用者必须等到方法调用返回后,才能继续后续的行为。 异步方法调用更像一个消息传递,一旦开始,方法调用就会立即返回,调用者就可以继续后续的操作。 而异步方法通常会在另外一个线程中"真实"地执行。整个过程,不会阻碍调用者的工作。对于调用者来说,异步调用似乎
同步调用异步调用两者之间的区别
04-14 6432
前言   提到同步通讯和异步通讯两者的区别,首先笔者是从微服务间通讯方式角度出发来阐述这两者的区别同步通讯 调用方需要等待执行方的调用结果。(就像打电话一样,需要实时响应) 典型就是:Dubbo的rpc远程过程调用方式 异步通讯 调用方无需等待执行方的执行结果 (就像发微信,不需要马上回复) 典型就是消息队列(也称消息中间件):MQ 目前市场主流的中间件框架有:RabbitMq,RocketMq,Kafka,ActiveMq 这两种方式各有优劣: 打电话可以立即得到响应,但是你却不能跟多个
同步调用异步调用
u014248032的博客
09-11 4650
同步调用异步调用是两种提交任务的方式 同步调用:提交完任务后,就在原地等待任务执行完毕,拿到运行结果/返回值后再执行下一步,同步调用下任务是串行执行。 异步调用:提交完任务后,不会再原地等待任务执行完毕,直接执行下一行代码,异步调用时并发执行。 异步调用,几乎同时下达任务 from concurrent.futures import ProcessPoolExecutor import...
同步异步区别
qq_51728252的博客
01-03 4056
一、同步、异步的区别 同步,是所有的操作都做完,才返回给用户结果。即写完数据库之后,在相应用户,用户体验不好。 异步,不用等所有操作等做完,就相应用户请求。即先相应用户请求,然后慢慢去写数据库,用户体验较好。 同步同步的思想是:所有的操作都做完,才返回给用户。这样用户在线等待的时间太长,给用户一种卡死了的感觉(就是系统迁移中,点击了迁移,界面就不动了,但是程序还在执行,卡死了的感觉)。这种情况下,用户不能关闭界面,如果关闭了,即迁移程序就中断了。 异步: 将用户请求放入消息队列,并反馈给用户,系统
同步调用异步调用
qq_34754747的博客
08-19 699
1、同步调用 在单线程方式下,一段代码调用另一段代码时,只能采用同步调用,必须等待这段代码执行完返回结果后,调用方才能继续往下执行。 2、异步调用 调用方和被调方可以属于两个不同的线程,调用方启动被调方线程后,不等对方返回结果就继续执行后续代码。被调方执行完毕后,通过某种手段通知调用方:结果已经出来,请酌情处理。 ...
同步调用异步调用WebService
09-03
本文给大家介绍webservice同步调用异步调用同步调用就是一个同步操作会阻塞整个当前的进程,直到这个操作完成才能执行下一段代码,异步调用不会阻塞启动操作的调用线程,调用程序必须通过轮流检测,或者等待完成...
同步接口与异步接口的区别和实现方法
qq_39877681的博客
04-21 2364
同步接口与异步接口的区别和是实现方法
同步调用异步调用、回调
10-29 465
同步调用:一种阻塞式调用方式,调用方要等待对方执行完毕才返回,它是一种单向调用异步调用:一种类似消息或事件的机制,不过它的调用方向刚好相反,接口的服务在收到某种讯息或发生某种事件时,会主动通知客户方(即调用客户方的接口,就是A类中调用B类中的某个方法C,然后B类中反过来调用A类中的方法D,D这个方法就叫做回调方法) 回调:一种双向调用模式,也就是说,被调用方在接口被调用时也会调用对方的接口; ...
同步函数与异步函数
yunfan
11-01 6146
同步、异步概念 定义:同步和异步关注的是消息通信机制(synchronous communication/ asynchronous communication)。从程序同步,就是调用方发起某个调用后,调用方得等待这个调用返回结果才能继续往下执行。异步,和同步相反 调用方不会等待调用返回结果,而是在调用发出后,调用者继续执行后续操作,被调用者通过某种反馈机制来通知调用者,比如说监听被调用者的...
同步和异步有什么区别,使用场景?
最新发布
学无止境
08-27 1025
同步(Synchronous)和异步(Asynchronous)是用于描述不同的操作和通信模式的术语。它们在处理任务、执行代码以及处理通信时有很大的异同。
matlab中如何调用cuda_如何在SpringBoot中异步请求和异步调用
weixin_39614060的博客
11-19 303
黑客技术点击右侧关注,了解黑客的世界!Java开发进阶点击右侧关注,掌握进阶之路!Python开发点击右侧关注,探讨技术话题!作者丨会炼钢的小白龙链接:https://www.cnblogs.com/baixianlong/p/10661591.html一、SpringBoot中异步请求的使用1、异步请求与同步请求特点:可以先释放容器分配给请求的线程与相关资源,减轻系统负担,释放了容器所...
Java教程:Rabbitmq监听器,用于监听topic类型消息队列,并进行业务处理
wfeil211的博客
11-09 5822
工具类第一弹、Rabbitmq监听器 import cn.hutool.json.JSONUtil; import com.alibaba.fastjson.JSONObject; import com.rabbitmq.client.Channel; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.amqp.core.ExchangeTypes; import org.springfra
RabbitMQ消息队列+spring监听mq服务器,接收消费mq消息
热门推荐
万米高空的博客
06-27 3万+
最近soa项目要和官网系统对接,实现mq信息监听,保存等一些列操作。项目用的是Maven+SSM框架。然后学习和开发用了两天时间,算是搞定,趁加班时间做个总结。
异步调用异步调用同步委托和异步委托
07-27
异步调用同步调用是指在编程中进行函数或方法调用时的不同方式。 同步调用是指程序按照顺序执行,当一个函数或方法调用发生时,程序会等待该调用完成后再继续执行后续的代码。这意味着程序会阻塞在函数调用处,直到函数返回结果或执行完毕。 异步调用则是指程序在进行函数或方法调用时,不会等待该调用完成。相反,它会继续执行后续的代码,而不阻塞程序的执行。异步调用通常会使用回调函数、任务队列或事件驱动等机制来处理异步操作的结果。 例如,在一个网络请求中,同步调用会导致程序在发送请求后一直等待服务器响应,直到收到响应后才进行下一步操作。而异步调用则可以在发送请求后立即继续执行后续代码,当收到服务器响应时再处理响应结果。 关于委托,同步委托和异步委托是指在事件处理中对委托对象的调用方式的区别同步委托是指在触发事件时,委托对象的调用同步进行的。也就是说,触发事件的代码会等待委托对象执行完毕后再继续执行后续代码。 异步委托则是指在触发事件时,委托对象的调用是异步进行的。触发事件的代码会立即继续执行后续代码,而不会等待委托对象执行完毕。 异步委托通常与异步调用结合使用,以实现并发处理或提高程序的响应性能。

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

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

热门文章

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

分类专栏

  • 数据库 14篇
  • 算法与数据结构 10篇
  • Java 18篇
  • 考研 2篇
  • Linux 10篇
  • 操作系统 4篇
  • VUE 10篇
  • C/C++ 3篇
  • 风袖 9篇
  • 前端 1篇
  • SpringBoot 16篇
  • 小程序 10篇
  • MyBatis 3篇
  • 计算机组成原理 2篇
  • 微服务 5篇
  • 网络 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: 你解决了吗?我现在也是很卡

最新文章

  • 解决: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、付费专栏及课程。

余额充值

深圳SEO优化公司绵阳设计网站河池SEO按天收费哪家好昆明网站搜索优化多少钱金昌网站优化按天扣费哪家好苏州网站搜索优化报价楚雄百搜标王宜宾网页制作推荐许昌优秀网站设计沧州网站优化多少钱郑州网站优化按天计费推荐重庆网络广告推广哪家好漯河关键词按天计费多少钱银川网站关键词优化推荐白银百度网站优化排名多少钱九江网站优化按天收费广安网站制作设计价格本溪网页制作哈密至尊标王韶关企业网站制作多少钱南京建站公司东莞百度竞价包年推广价格太原网页设计多少钱汕头外贸网站设计推荐伊春网站改版坂田网站搭建报价百色优秀网站设计报价通辽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次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

深圳SEO优化公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化