AP流程总结

2020-06-01 11:32:09 浏览数 (2)

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)

0 人点赞