Feign和Ribbon是类似的负载均衡工具。Fegin是声明式的web service客户端,它使得编写Web服务客户端变得更加简单。我们只需要通过创建接口并用注解来配置它既可完成对Web服务接口的绑定
Feign旨在让Java Http客户端变得更容易,同时Feign集成了Ribbon和Eureka来提供均衡负载的HTTP客户端实现
我们看看如何使用吧
创建新的子工程
首先创建和eureka-consumer一样的子工程,命名eureka-consumer-feign,然后进行些许修改
1.去掉自定义rule和主程序的@RibbonClient注解以及ServiceController类中的所有方法
2.添加依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-feign</artifactId>
<version>1.4.7.RELEASE</version>
</dependency>
3.创建接口
创建service包,并创建接口
package com.ifilldream.leancloud.service;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.GetMapping;
@Component
@FeignClient(value = "eureka-client")
public interface FeignService {
@GetMapping("/test")
String consumer();
}
注意:使用@FeignClient来指定服务名称,这里指定了eureka-client服务,@GetMapping("/test")中的/test绑定的就是eureka-client服务中的/test接口
4.修改ServiceController
@RestController
public class ServiceController {
@Autowired
private FeignService feignService;
@GetMapping("/consumer")
public String consumer() {
return feignService.consumer();
}
}
5.启动类
@SpringBootApplication
@EnableEurekaClient
@EnableFeignClients()
public class ConsumerFeign {
public static void main(String[] args) {
SpringApplication.run(ConsumerFeign.class, args);
}
}
通过@EnableFeignClients()注解扫描开启Feign
6.测试
依次启动eureka-server7001、eureka-client8001、eureka-client8002、eureka-consumer-feign,浏览器输入http://localhost:6001/consumer 即可看到效果,此时默认为轮询
统一首发平台为v.x.公.众号iFillDream,搜索关注第一时间掌握最新推送
来源:oschina
链接:https://my.oschina.net/u/4442011/blog/3186503