ribbon负载均衡

一   ribbon初级

1  配置配置文件yum

ribbon负载均衡_第1张图片

2 application配置eureka客户端

LoadBalanced配置结合restful接口类

ribbon负载均衡_第2张图片

3 找到目标内部server接口

ribbon负载均衡_第3张图片

 @GetMapping("/log-instance")

  public void logInstance(){

    ServiceInstance serviceInstance = this.loadBalancerClient.choose("flim-user");

    log.info("{}:{}:{}",serviceInstance.getServiceId(),serviceInstance.getHost(),serviceInstance.getPort());

  }

 

 

运行测试程序

  1. 启动 Eureka Server
  2. 启动 2 个或更多 flim-user 实例
  3. 启动 flim-consumer
  4. 访问 http://localhost:8761/ 查看微服务 flim-user 是否注册成功
  5. 多次访问 http://localhost:8010/user/1 会返回如下结果

{"id":1,"username":"account1","name":"张三","age":20,"balance":100.00}

二 ribbon自定义的配置

Ribbon提供了多种策略,例如轮询round robin、随机Random、根据响应时间加权等。

可以使用Java代码或属性自定义 Ribbon 的配置,Ribbon 默认配置类是 RibbonClientConfiguration,也可以使用一个 POJO 自定义 Ribbon 配置,这种 配置是细粒度的,不同的 Ribbon 客户端可以使用不同的配置

/**

 * 该类为配置类

 * 不应该被ComponentScan扫描

 */

@Configuration

public class RibbonConfiguration {

  @Bean

  public IRule ribbonRule(){

    //配置负载均衡的规则,更改为随机

    return new RandomRule();

  }

}

使用 @RibbonClient 或 @RibbonClients 注解为服务提供者指定配置类

@SpringBootApplication

@EnableDiscoveryClient

@RibbonClient(name = "flim-user",configuration = RibbonConfiguration.class)

public class FlimConsumerApplication {

  @Bean

  @LoadBalanced

  public RestTemplate restTemplate(){

    return new RestTemplate();

  }

  public static void main(String[] args) {

    SpringApplication.run(FlimConsumerApplication.class, args);

  }

}

 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(微服务)