网站开发及app开发都需要多少钱长沙网站seo哪家公司好
远程调用
何为远程调用?例如:单体服务时,A模块的功能涉及到引用B模块的功能,那我们需要在A模块中注入B模块的相关服务类并调用其方法;那么同样的逻辑在微服务体系下,就会变成了A服务的功能需要调用B服务的功能,这就形成了服务间调用,也称为远程调用。
目前来说,微服务体系已经相当成熟,SpringCloud体系中也提供了完善的、便捷的工具。Feign 和 OpenFeign。 本文主要以 OpenFeign 为主,目前主流也推荐使用OpenFeign.
Feign 和 OpenFeign
OpenFeign 组件的前身是 Netflix Feign 项目,它最早是作为 Netflix OSS 项目的一部分,由 Netflix 公司开发。后来 Feign 项目被贡献给了开源组织,于是才有了我们今天使用的 Spring Cloud OpenFeign 组件。
Feign 和 OpenFeign 有很多大同小异之处,不同的是 OpenFeign 支持 MVC 注解。可以认为 OpenFeign 为 Feign 的增强版。
简单总结下 OpenFeign 能用来做什么:
- OpenFeign 是声明式的 HTTP 客户端,让远程调用更简单。
- 提供了HTTP请求的模板,编写简单的接口和插入注解,就可以定义好HTTP请求的参数、格式、地址等信息
- 整合了Ribbon(负载均衡组件)和 Hystix(服务熔断组件),不需要显示使用这两个组件
- Spring Cloud Feign 在 Netflix Feign的基础上扩展了对SpringMVC注解的支持