1. 消费端配置ribbon依赖
由于spring-cloud-starter-eureka 已经包含 spring-cloud-starter-ribbon所以不需要添加新的依赖
2. RestTemplate添加@LoadBalanced注解
|
@SpringBootApplication @EnableDiscoveryClient publicclass ConsumerApplication { … @Bean @LoadBalanced public RestTemplate restTemplate(){ returnnew RestTemplate(); } … |
3. Controller中注入RestTemplate对象,远程调用(不需要修改)
4. 效果
启动eureka server
启动2个以上tcloud-user-provider 实例
|
Debug =》 debug configurations =》 java application =》选中需要多实例的application右击Duplicate=》 |
|
Augruments 添加启动端口 –server.port=8001 |
启动tcloud-user-consumer
消费者Controller添加打印访问节点代码:
|
@RestController publicclass TboxController { privatestaticfinal Logger LOGGER = LoggerFactory.getLogger(TboxController.class);
@Autowired private LoadBalancerClient loadBalancerClient;
@GetMapping("/log-instance") publicvoid logUserInstance(){ ServiceInstance serviceInstance=this.loadBalancerClient.choose("tcloud-user-provider"); //打印当前选择的是哪个节点 TboxController.LOGGER.info("{}:{}:{}",serviceInstance.getServiceId(),serviceInstance.getHost(),serviceInstance.getPort()); } … |
多次访问:http://localhost:9000/log-instance
控制台打印日志如下:
|
2017-10-30 15:27:25.531 INFO 8740 --- [nio-9000-exec-1] c.p.c.study.controller.TboxController : tcloud-user-provider:192.168.8.101:8000 2017-10-30 15:27:25.844 INFO 8740 --- [nio-9000-exec-2] c.p.c.study.controller.TboxController : tcloud-user-provider:192.168.8.101:8001 2017-10-30 15:27:26.178 INFO 8740 --- [nio-9000-exec-3] c.p.c.study.controller.TboxController : tcloud-user-provider:192.168.8.101:8000 2017-10-30 15:27:26.559 INFO 8740 --- [nio-9000-exec-4] c.p.c.study.controller.TboxController : tcloud-user-provider:192.168.8.101:8001 2017-10-30 15:27:27.045 INFO 8740 --- [nio-9000-exec-5] c.p.c.study.controller.TboxController : tcloud-user-provider:192.168.8.101:8000 2017-10-30 15:27:27.548 INFO 8740 --- [nio-9000-exec-6] c.p.c.study.controller.TboxController : tcloud-user-provider:192.168.8.101:8001 2017-10-30 15:27:28.046 INFO 8740 --- [nio-9000-exec-7] c.p.c.study.controller.TboxController : tcloud-user-provider:192.168.8.101:8000 |