feign是一个声明式的伪客户端,只需要创建一个接口并且注解,它具有可插拔的特性。feign集合了Ribbon,再与Eurake结合实现服务的注册发现与负载均衡。结合Hystrix,具有熔断功能。
1.使用步骤首先引入feign,eureka, hystrix的jar包
2.启动两次服务提供者
3.配置文件声明注册中心地址,声明端口号,服务名
eureka: client: serviceUrl: defaultZone: http://localhost:8761/eureka/ spring: application: name: service-feign server: port: 8764
4.在启动文件上声明@EnableFeignClient
5.创建接口类
@FeignClient(value = "service-hi") //服务提供者的服务名称 public interface SchedualServiceHi { @RequestMapping(value = "/hi",method = RequestMethod.GET) String sayHiFromClientOne(@RequestParam(value = "name") String name); }
6.在controller层暴露一个 /hi的接口出去,通过定义的FeignClien来消费服务
@RestController public class HiController { @Autowired SchedualServiceHi schedualServiceHi; @GetMapping(value="/hi") public String sayHi(@RequestParam String name){ return schedualServiceHi.sayHiFromClientOne(name); } }
7.启动浏览器,发送请求 http://localhost:8765/hi?name=zhangsan,服务的提供者会交替被调用.