Fegin包含了Ribbon,可以直接实现负载均衡功能。这里我们就在Ribbon的项目稍微进行改造下实现该功能。
了解springcloud架构可以加求求:三五三六二四七二五九
首先在pom文件添加Fegin的依赖包。
-
-
org.springframework.cloud
-
spring-cloud-starter-openfeign
-
然后在springcloud-ribbon-consumer项目的启动类上添加@EnableFeignClients注解,启用feign进行远程调用。
添加完成之后,新建一个类,实现feign远程调用。
代码如下:
-
@FeignClient(name= "springcloud-ribbon-consumer2")
-
public interface HelloRemote {
-
@RequestMapping(value = "/hello")
-
public String hello(@RequestParam(value = "name") String name);
-
}
-
最后在提供一个新的接口供外部调用。这里就直接在之前的代码上新加一个接口了。
代码如下:
-
@RestController
-
public class ConsumerController {
-
-
@Autowired
-
RestTemplate restTemplate;
-
-
@RequestMapping("/hello")
-
public String hello() {
-
return restTemplate.getForObject("", String.class);
-
}
-
-
-
@Autowired
-
HelloRemote helloRemote;
-
-
@RequestMapping("/hello/{name}")
-
public String index(@PathVariable("name") String name) {
-
System.out.println("接受到请求参数:"+name+",进行转发到其他服务!");
-
return helloRemote.hello(name);
-
}
-
}
添加完之后,重启springcloud-ribbon-consumer服务,然后依旧重复访问 该地址,
访问的结果如下:
-
pancm,Hello
-
pancm,Hello 这是另一个服务!
-
pancm,Hello
-
pancm,Hello 这是另一个服务!
-
pancm,Hello
-
pancm,Hello 这是另一个服务!
阅读(1343) | 评论(0) | 转发(0) |