Dubbo服务调用过程主要有两个阶段
1、服务消费方发起调用请求,并处理结果
2、服务提供方接收请求,并返回处理结果
第一阶段 消费者客户端发起rpc请求
这个阶段会将请求数据发送到服务提供者,并且在发起请求前完成负载均衡和过滤的功能,同时具备集群容错的能力。
第二阶段 提供者处理客户端请求
这个阶段会接收客户端的请求数据,然后解码,对请求做一些过滤包装,最后将结果写回客户端
查看服务调用的整体源码后可以看出:
1、从客户端和服务提供者两端看,底层都是通过动态代理技术来屏蔽地底层的远程通信细节的,动态代理在Rpc技术中还是很关键的。
2、Dubbo并不是单纯的实现了远程通信的功能,它同时具备客户端负载均衡,集群容错,mock过滤等能力,在服务提供者端具备超时拦截等服务治理能力。
3、远程通信的细节在最底层,包括协议解析,编码解码,Dubbo支持多协议可以知道底层实现是非常灵活的,开发者完全不用关心底层实现。