概述
Nacos默认集成了Ribbon,为此无需引用相关jar包,下面来看个Ribbon的应用案例
demo
我们将实现由order服务的ribbon/ribbontest/请求负载到stock/stock两个服务
order服务中的代码
RibbonConfig
@Configuration
public class RibbonConfig {
@Bean
@LoadBalanced
public RestTemplate restTemplate() {
return new RestTemplate();
}
}
RibbonController
@RestController
@RequestMapping("/ribbon")
public class RibbonController {
private final RestTemplate restTemplate;
@Autowired
public RibbonController(RestTemplate restTemplate) {
this.restTemplate = restTemplate;
}
@RequestMapping(value = "/ribbontest/{str}", method = RequestMethod.GET)
public String echo(@PathVariable String str) {
return restTemplate.getForObject("http://stock-service/stock/test/" + str, String.class);
}
}
stock服务中的代码
@RestController
@RequestMapping("/stock")
public class StockController {
@Value("${server.port}")
private String port;
@GetMapping("/test/{str}")
public String test(@PathVariable String str){
return String.format("stock hello spring cloud alibaba,%s,%s",str,port);
}
}
在stock-service中允许创建多个实例,
更改端口启动多个实例
我们来看一下
负载到不同实例上了