Fegin包含了Ribbon,可以直接实现负载均衡功能。这里我们就在Ribbon的项目稍微进行改造下实现该功能。
了解springcloud架构可以加求求:三五三六二四七二五九
首先在pom文件添加Fegin的依赖包。

点击(此处)折叠或打开

然后在springcloud-ribbon-consumer项目的启动类上添加@EnableFeignClients注解,启用feign进行远程调用。

添加完成之后,新建一个类,实现feign远程调用。
代码如下:


点击(此处)折叠或打开

  1. @FeignClient(name= "springcloud-ribbon-consumer2")
  2.     public interface HelloRemote {
  3.         @RequestMapping(value = "/hello")
  4.         public String hello(@RequestParam(value = "name") String name);
  5.     }

最后在提供一个新的接口供外部调用。这里就直接在之前的代码上新加一个接口了。
代码如下:

点击(此处)折叠或打开

  1. @RestController
  2.     public class ConsumerController {
  3.        
  4.         @Autowired
  5.         RestTemplate restTemplate;
  6.         
  7.         @RequestMapping("/hello")
  8.         public String hello() {
  9.             return restTemplate.getForObject("http://springcloud-ribbon-consumer2/hello/?name=xuwujing", String.class);
  10.         }
  11.         
  12.        
  13.         @Autowired
  14.         HelloRemote helloRemote;
  15.         
  16.         @RequestMapping("/hello/{name}")
  17.         public String index(@PathVariable("name") String name) {
  18.             System.out.println("接受到请求参数:"+name+",进行转发到其他服务!");
  19.             return helloRemote.hello(name);
  20.         }
  21.     }
添加完之后,重启springcloud-ribbon-consumer服务,然后依旧重复访问 http://localhost:9006//hello/pancm 该地址,
访问的结果如下:

点击(此处)折叠或打开

  1. pancm,Hello
  2. pancm,Hello 这是另一个服务!
  3. pancm,Hello
  4. pancm,Hello 这是另一个服务!
  5. pancm,Hello
  6. pancm,Hello 这是另一个服务!






08-29 21:24