下文摘自孙卫琴的经典著作《Spring Cloud Alibaba微服务开发零基础入门到实操》,帮助您理解Dubbo和OpenFeign进行微服务远程调用的区别。

Dubbo和OpenFeign都可以进行远程微服务访问。Dubbo采用RPC协议通信,是一个远程调用框架,分布于消费者和提供者两端。OpenFeign是一个远程调用组件,位于消费者端,底层采用HTTP协议通信。
Dubbo是阿里巴巴公司开发的支持RPC通信的远程调用框架,如今已成为Apache的一个开源项目,官方网址参见本文技术支持网页(http://www.javathinker.net/alibaba)的【链接12】。
Dubbo与OpenFeign相比,具有以下区别:
(1)Dubbo是框架,而OpenFeign是组件。Dubbo作为远程调用框架,需要同时部署到微服务的提供者和消费者中。OpenFeign仅仅是消费者方的远程调用组件。
(2)Dubbo提供了名副其实的RPC远程调用,而OpenFeign实际上仅仅提供了伪RPC调用。图1演示OpenFeign的远程调用过程,消费者访问HelloFeignService接口,OpenFeign为该接口提供具体的实现,该实现按照HTTP协议请求访问提供者的URL资源。提供者方并没有实现HelloFeignService接口,所以说这是伪RPC调用。

图1 OpenFeign提供的伪RPC调用
图2演示Dubbo的远程调用过程,消费者访问HelloService接口,消费者方的Dubbo为该接口提供代理实现。在提供者方,HelloServiceImpl类真正实现了HelloServic

最低0.47元/天 解锁文章
1596

被折叠的 条评论
为什么被折叠?



