springcloud之Feign伪装
2021-01-19 14:15
标签:stat provider 名称 结果 ace wired consumer response new Feign:可以把Rest的请求进行隐藏,伪装成类似SpringMVC的Controller一样。你不用再自己拼接url,拼接参数等等操作,一切都交给Feign去做。 Feign是Netflix开发的声明式/模板化的HTTP客户端。 Feign的使用 1.在consumer的pom文件中导入依赖 2.在启动类开启Feign功能 可以删除 RestTemplate:feign已经自动集成了Ribbon负载均衡的RestTemplate。所以,此处不需要再注册RestTemplate。 3.在consumer工程中,添加UserClient接口: 首先这是一个接口,Feign会通过动态代理,帮我们生成实现类。这点跟mybatis的mapper很像 接口中的定义方法,完全采用SpringMVC的注解,Feign会根据注解帮我们生成URL,并访问获取结果 改造原来的调用逻辑,调用UserClient接口: 负载均衡 Feign已经集成了Ribbon依赖和自动配置: Feign也有对Hystrix的集成,默认情况下是关闭的, 通过下面的参数来开启: 1)要定义一个类UserClientFallback,实现刚才编写的UserClient,作为fallback的处理类, 2)然后在UserFeignClient中,指定刚才编写的实现类 springcloud之Feign伪装 标签:stat provider 名称 结果 ace wired consumer response new 原文地址:https://www.cnblogs.com/zxh06820/p/12907700.htmldependency>
groupId>org.springframework.cloudgroupId>
artifactId>spring-cloud-starter-openfeignartifactId>
dependency>
@SpringCloudApplication
@EnableFeignClients // 开启feign客户端
public class ItestConsumerApplication {
public static void main(String[] args) {
SpringApplication.run(ItestConsumerApplication.class, args);
}
}
@FeignClient(value = "test-provider") // 标注该类是一个feign接口
public interface UserClient {
@GetMapping("user/{id}")
User queryById(@PathVariable("id") Long id);
}
@FeignClient声明这是一个Feign客户端,类似@Mapper注解。同时通过
value
属性指定服务名称@Controller
@RequestMapping("consumer/user")
public class UserController {
@Autowired
private UserClient userClient;
@GetMapping
@ResponseBody
public User queryUserById(@RequestParam("id") Long id){
User user = this.userClient.queryUserById(id);
return user;
}
}
feign:
hystrix:
enabled: true # 开启Feign的熔断功能
@Component
public class UserClientFallback implements UserClient {
@Override
public User queryById(Long id) {
User user = new User();
user.setUserName("服务器繁忙,请稍后再试!");
return user;
}
}
@FeignClient(value = "test-provider", fallback = UserClientFallback.class) // 标注该类是一个feign接口
public interface UserClient {
@GetMapping("user/{id}")
User queryUserById(@PathVariable("id") Long id);
}
文章标题:springcloud之Feign伪装
文章链接:http://soscw.com/index.php/essay/44103.html