乐趣区

关于java:Ribbon的基础使用模板

Ribbon 是 Spring Cloud 外围组件之一,它提供的最重要的性能就是负载平衡,和硬件负载平衡 F5 不同,它的负载平衡是基于客户端的,Zuul 网关和 Feign 能够通过 Ribbon 轻松的实现服务的负载平衡,同时防止了与业务无关的冗余代码。

1 根本应用

配置文件中配置:

服务消费者中定义
userservice:  #服务提供者
   ribbon:    NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule# 负载平衡规定类

代码

    @Bean
    public IRule randomRule(){
        // 返回实现 IRule 的实例 可自定义策略
        return new RandomRule(); // 随机}

能够自定义类实现 IRule 接口 而后再配置文件中配置自定义的实现类达到 自定义负载平衡策略, 默认策略是同一区下进行轮询 配置中能够配置区(zone)名

2 Ribbon 负载平衡流程图

流程
1 通过 url 获取服务名称
2 通过服务名称去注册核心获取服务实例
3 通过负载平衡策略抉择其中一个实例
4 通过实例批改 url,发动申请

3 懒加载和饥饿加载

Ribbon默认是懒加载 ,当第一次拜访服务时再去拉取服务、调用,后续放在缓存中,第一次调用慢
饥饿加载则是我的项目启动时加载服务

Ribbon 改为饥饿加载的形式为:

ribbon:  
  eager-load:    
     enabled: true # 开启饥饿加载 
     clients: userservice # 指定对 userservice 这个服务饥饿加载

多个服务则改为:

    clients: 
        -userservice
        -xxservice
退出移动版