异步服务调用的工作原理:
1消费者调用服务端发布的接口,接口调用由分布式服务框架包装成动态代理,发起远程服务调用
2.通信框架异步发送请求信息,如果没有IO异常,返回
3.请求信息发送成功以后,IO流构建Future对象,设置到RPC上下文中
4.用户线程通过RPC上下文获得Future对象
5.构造Listener对象,将它添加到Future中,用于服务端应答异步回调通知
6.用户线程返回,不阻塞等待应答
7.服务端返回应答信息,通信框架负责反序列化等
8.IO线程将应答设置到Future对象的操作结果中
9.Future对象扫描注册的监听器列表,循环调用监听器xxx方法,将结果通知监听器,监听器获取到结果之后,继续后续的逻辑额执行,异步服务调用结束
来源:https://blog.csdn.net/qq_33879355/article/details/101027732