spring cloud : 负载均衡Ribbon (分流)

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=》

spring cloud : 负载均衡Ribbon (分流)

Augruments 添加启动端口 –server.port=8001

spring cloud : 负载均衡Ribbon (分流)

 

启动tcloud-user-consumer

访问http://pateo1:8100

spring cloud : 负载均衡Ribbon (分流)

消费者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



相关文章:

  • 2021-07-30
  • 2022-12-23
  • 2021-11-06
  • 2021-07-13
  • 2021-12-01
  • 2021-12-25
  • 2021-08-07
猜你喜欢
  • 2021-09-23
  • 2021-06-28
  • 2021-11-10
  • 2021-10-23
  • 2021-05-12
  • 2021-05-16
相关资源
相似解决方案