前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >AP流程总结

AP流程总结

原创
作者头像
awk
修改2020-06-01 11:32:09
1.4K0
修改2020-06-01 11:32:09
举报
文章被收录于专栏:cppcpp

1. AP使用了epoll+多进程+协程技术来实现高并发;

2. 多进程之间使用消息队列通信,把进程ID设置成消息类型可以保证进程只拿到属于本进程的回包;

3. 使用pth库实现协程切换;A进程调用B进程服务时,A发出的消息头中包含当前会话sessionId, 并保存会话Item;

消息发出去之后A进程其他协程可以继续工作;

A进程拿到回包时,根据sessionId找到存在本进程内存中的历史会话Item, 然后切回到历史会话进行收包处理;

4. 异步分发流程(先批量把请求发出去,这样被调就可以并发处理多个请求,主调不需要等待上个请求的返回后才发起下一次请求,整个请求的响应时间约等于「耗时最长的那一次请求的响应时间」。异步分发的适用场景是,「某次请求」不依赖「其他请求的回包」): a. 批量调用SendXXOO(可以是不同的rpc调用), 记录请求次数 b. 业务在需要回包的地方,循环请求次数,调用CServiceItem::schedule(), 等待回包 c. 先到的回包,根据命令字判断是那个请求的回包,业务处理回包 d. 循环次数减1,重复步骤b

数据流转(1)
数据流转(1)
数据流转(2)
数据流转(2)

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
http://www.vxiaotou.com