feign的使用步骤
在分布式的项目中,使用feign进行各个微服务之间的远程调用,简化调用方式!!
在A服务里面调用B服务和C服务
1:导包OpenFeign,在服务调用方导包(A服务)
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
2:启动类添加开启OpenFeign注解
@SpringBootApplication
@MapperScan("com.ding.user.mapper")
@EnableDiscoveryClient
@EnableFeignClients //开启feign的微服务客户端
public class UserApplication {
public static void main(String[] args) {
SpringApplication.run(UserApplication.class, args);
}
@Bean
public PaginationInterceptor paginationInterceptor() {
return new PaginationInterceptor();
}
}
3:开发B服务使用的API接口,添加包com.ding.user.feign
@FeignClient("leadnews-wemedia") //指定B服务的微服务名称
public interface WemediaFeign {
@PostMapping("/wmUser/v1/save") //补全方法的访问路径
ResponseResult<WmUser> save(@RequestBody WmUser wmUser);
}
4:开发C服务使用的API接口
@FeignClient("leadnews-article") //指定B服务的微服务名称
public interface ArticleFeign {
@PostMapping("/author/v1/save") //补全方法的访问路径
ResponseResult<ApAuthor> save(@RequestBody ApAuthor userRealname);
}
注意:如果业务逻辑特别复杂,openfeign进行远程调用的时候,时长超过1秒,就会报错。
修改openfeign超时时间
feign:
client:
config:
default:
readTimeout: 60000