OpenFeign简单使用

OpenFeign入门

什么是 OpenFeign?

OpenFeign是一个远程访问的组件,用于两个微服务之间互相访问的中间件

OpenFeign使用步骤

1.添加OpenFeign的依赖

复制代码
<!-- 加入OpenFeign的依赖 -->
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>

2.在启动类上添加@EnableFeignClients开启OpenFeign的功能支持

3.编写OpenFeign的客户端

创建一个接口,使用@FeignClient标记,其value属性设置远程访问的服务的服务名(注册到nacos注册中心的名字),同样可以设置降级操作,防止雪崩效应,两种方法设置降级操作,返回兜底值fallback和fallbackfactory

复制代码
//指定注册到nacos注册中心的微服务名value ="spzx-product"
//设置降级操作fallbackFactory = RemoteCategoryServiceFactory.class,设置熔断工厂,返回兜底值
@FeignClient(value ="spzx-product",fallbackFactory = RemoteCategoryServiceFactory.class)
public interface RemoteCategoryService {
    @GetMapping("/category/remoteGetFirstProductCatepory/{parentId}")
    //需要在形参上指定参数的value,否则有时候远程访问会报错@PathVariable(value = "parentId")
    R<List<CategoryVo>> remoteGetFirstProductCatepory(@PathVariable(value = "parentId") Long parentId);
}

注意

远程访问时,若参数为实体类类型、map,此时以json的格式进行传输的,

因此远程访问的服务中相对应的控制器方法的参数和OpenFeign的接口中相对应的方法需要使用@RequestBody注解标记形参

相关推荐
南客先生1 天前
海量聊天消息处理:ShardingJDBC分库分表、ClickHouse冷热数据分离、ES复合查询方案、Flink实时计算与SpringCloud集成
java·clickhouse·elasticsearch·flink·springcloud·shardingjdbc
mask哥1 天前
详解springcloudalibaba采用prometheus+grafana实现服务监控
java·nacos·springboot·grafana·prometheus·springcloud·微服务监控
shangxianjiao8 天前
Javaweb后端 maven高级 maven聚合
java·maven·springboot·springcloud·聚合
xiegwei13 天前
Kotlin 和 spring-cloud-function 兼容问题
开发语言·kotlin·springcloud
有梦想的攻城狮16 天前
spring-cloud-starter-alibaba-sentinel使用说明
linux·服务器·sentinel·springcloud
Kale又菜又爱玩18 天前
Sentinel全面解析与实战教程
java·spring·微服务·sentinel·springboot·springcloud
小萌新上大分19 天前
SpringCloudGateWay
java·开发语言·后端·springcloud·springgateway·cloudalibaba·gateway网关
有梦想的攻城狮20 天前
spring-cloud-alibaba-nacos-config使用说明
java·spring·nacos·springcloud·配置中心
小李同学_LHY23 天前
三.微服务架构中的精妙设计:服务注册/服务发现-Eureka
java·spring boot·spring·springcloud
shangxianjiao25 天前
Javaweb后端 AOP进阶 通知类型 切入点表达式 连接点
java·springboot·springcloud·aop