Spring Cloud RPC
本文将介绍 Spring Cloud 对 RPC 的支持。
一、RPC
具体请看:
二、OpenFeign
1. 什么是 OpenFeign?
OpenFeign 是 Spring Cloud 下的组件,其作用是简化远程方法调用,将 HTTP 形式的 Restful API 的调用简化为 RPC。
2. 原理
- 在项目启动时,扫描所有被
@FeignClient
修饰的接口 - 针对每一个接口,解析
@FeignClient
和接口中方法的注解,生成动态代理对象 - 将动态代理对象注册为 Bean
- 调用处只需要注入接口对应的 Bean,调用方法时,请求将由动态代理对象接管
3. 示例
(1) 添加依赖
1 |
|
(2) 编写远程方法接口
1 |
|
其中,
@FeignClient
注解用于声明该接口是远程方法接口- value 属性用于指定服务名
- path 属性用于指定统一前置路径
@PostMapping
注解用于请求的具体路径
(3) 配置超时时间
配置超时时间,一旦超时,将自动取消请求并返回异常,
1 |
|
(4) 调用
在需要进行远程方法调用的类中,注入远程方法接口对应的 Bean,直接像调用本地方法一样调用即可。
1 |
|
参考
- Spring Cloud 微服务项目实战