Spring Cloud Ribbon实现客户端负载均衡

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/chenbetter1996/article/details/88854597

  在分布式架构中,服务端负载均衡通常由Nginx实现分发请求的,而客户端的同一个实例部署在多个应用上时,也需要实现负载均衡,Spring Cloud Ribbon( [ˈrɪbən] ) 正好提供了这个功能。


1. Ribbon

  Ribbon [ˈrɪbən] 是 Netflix 发布的开源项目,其主要功能是提供客户端的软件负载均衡,将 Netflix 的中间层服务连接在一起。 Ribbon的客户端组件提供了一系列完善的配置项,例如连接超时重试等。
  在Eureka的自动配置依赖模块 spring-cloud-starter-eureka 中,传递依赖。同时使用时,Ribbon会利用从Eureka读取到的服务信息列表,在调用服务实例时,以合理的方式负载。
在这里插入图片描述


2. 使用

十分简单,直接在实例化的RestTemplate的方法上添加注解 @LoadBalanced,并在RestTemplate执行方法中使用服务实例的名称即可。

@Bean
@LoadBalanced  // 默认轮询
public RestTemplate restTemplate() {
    return new RestTemplate();
}
@RestController
public class TestController {
    @Autowired
    private RestTemplate restTemplate;

    @GetMapping("/print")
    public String print() {
        // 调用ms-user1应用的一个显示Hello功能,使用服务名 ms-user1
        return restTemplate.getForObject("http://ms-user1/test", String.class);
    }
}

在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/chenbetter1996/article/details/88854597