问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

HTTP服务异步化如何实现

发布网友 发布时间:2023-09-14 06:40

我来回答

1个回答

热心网友 时间:2024-11-07 08:42

随着业务的复杂,一个用户请求的处理过程,涉及多个对后端远程服务的调用。为了实现的简单,目前都是使用同步方式完成的,也就是在一个请求的处理过程中,会占用一个容器线程进行逻辑运算和同步远程调用。

解决方案

异步化编程中闻名的CallbackHell,让不少同学望而止步。当业务复杂的时候,各种callback互相嵌套,使代码变得更加容易出错和不易理解。业内也有有不少框架提供了异步化编程支持,有以下三个思路:

纤程

纤程可以认为是轻量级的用户线程,脱离了OS的调度机制,在应用级别进行调度管理。由于它只维护了基本的执行栈信息,并不立即分配执行资源,因此,它可以轻松创建成千上万的纤程(受内存大小的*),通过极少的线程完成对纤程的调度执行。这个方向的代表有微信团队开源的libco,以及在语言层面上支持的Go语言等。libcohook了底层IO相关的系统函数,通过底层IO事件驱动纤程的调度执行。

当遇到同步调用网络请求时,libco自动注册回调*,并让出CPU。而在IO事件完成或者超时候,自动恢复纤程,然后调度执行。它的实现机制决定了它非常适合依赖耗时IO服务的实现。承载了微信千万级调用的一个基石。不过遗憾的是,libco是一个高效的c/c++协程库,并没有在JVM上实现。

Quasar是在JVM之上实现了纤程机制,基本可以在Quasar的类库基础上,以同步的模式来编写异步的代码。在真正执行代码前,通过编译或者InstrumentAgent的形式织入相关的字节码。从头起步引入纤程还是一个不错的选择。对现有项目的改造,需要对现有的线程类修改成纤程类,这需要改动我们底层非常多的中间件。另外业内公布的使用经验较少,后续可以持续关注它的发展。

以上就是小编对于HTTP服务异步化如何实现的解答。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
我在石家庄我的显卡坏了过了保修期我想问一下哪里可以修? 梦见蹲了半天的茅房 2016寒假小结作文怎么写 荣耀9,为什么电量现在越来越不耐用,之前更 哪些是易燃易爆场所 加油站有哪些消防安全隐患 说美国和苏联可以毁灭地球若干次的说法是怎么算出来的? 上证指数的年线怎么看? 早教中心需要什么证件 开办早教中心需要哪些许可证 忺的意思。 想知道:台州市 从金清客运中心到温岭火车站怎么坐公交? 坐金清到温岭火车站的车在横街哪里上车 想知道:台州市 从温岭站到金清港客运码头怎么坐公交? 金清宾馆到温岭站多远 我看上一个隔壁学院的同大学女生,怎么追,目前我的女性朋友住在她隔壁... 上海祝桥镇营前村是属于南汇吗? 冬虫夏草里面的开枝散叶是什么意思 女的说一毛不拔怎么幽默的回复? 学蛋糕去培训班还是实体店好 电影我是谁中,成龙跳的那个楼是什么楼?是真的从那个斜坡滑下来的吗... 极速猎人的装扮介绍 光头强当猎人装饰的东西有什么 老师,睡午觉的前吃西瓜好还是上过厕所吃西瓜好呢? 盐于律己 甜以待人是个什么意思? 要看企业适用的法律规定,不能一概而论什么意思 2025考研政治曲艺政治VIP全程的高清网盘资源 求好心人帮忙找找_百度知... 一个号码怎么注册两个码 如何用一个手机号注册两个? 宽带要到期了可以续费吗?我是用手机卡绑定的 请问一下,《猎人》,《银魂》完结了吗? 猎人(hunterXhunter)OVA3,14集就完结了吗?还是没出完? 猎人的动画出完了吗,还会再出吗 封了多久可以解开? 冻结之后多长时间能解开 汽车的气门有的是8有的是16,它在整车中起什么作用,一般家用的要多少个... 汽车有几个气门,排气门大还是进气门大? 一般汽车每缸有几个气门? 金鱼立鳞 金鱼为什么会立起鳞片? 葫芦岛适合种什么花城市花木有哪些? 单活塞单作用液压缸为啥没有排气口 空调真空泵都有排气孔吗 真空泵排气口的问题 有关真空泵的问题??? 怎样进入河北省唐山滦县二中贴吧 请问贴吧怎么解封 以前玩的一款游戏,用兵粮可以造兵,也可以积累多多的来弄武将,有张飞... 办低保要查银行的流水账单吗 月经期间脾气会变坏吗?