Ribbon客户端

2021-01-15  本文已影响0人  o_O小薯条

Ribbon

  • 服务端负载均衡
  • 负载均衡算法在服务端
  • 由负载均衡器维护服务地址列表
  • 客户端负载均衡
  • 负载均衡算法在客户端
  • 客户端维护服务地址列表

Ribbon简化远程调用

package com.itheima.consumer.config;

import org.springframework.cloud.client.loadbalancer.LoadBalanced;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.client.RestTemplate;

@Configuration
public class RestemplateConfig {

     //加上这个注解
    @LoadBalanced
    @Bean
    public RestTemplate restTemplate() {
        return new RestTemplate();
    }
}

Ribbon负载均衡

Ribbon负载均衡配置(默认轮询策略)

1·编码方式设置Ribbon的负载均衡策略

package com.itheima.consumer.config;

import com.netflix.loadbalancer.IRule;
import com.netflix.loadbalancer.RandomRule;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class MyRule {
    @Bean
    public IRule rule(){
        return new RandomRule();
    }

}
package com.itheima.consumer;

import com.itheima.consumer.config.MyRule;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
import org.springframework.cloud.netflix.ribbon.RibbonClient;

/**
 * 启动类
 */

@SpringBootApplication
@EnableEurekaClient
@EnableDiscoveryClient //激活DiscoveryClient
/**
 * 配置Ribbon负载均衡策略
 * name:设置 服务提供方的 应用名称
 * configuration: 设置 负载均衡的Bean
 */
@RibbonClient(name = "EUREKA_PROVIDER", configuration = MyRule.class)
public class ConsumerApp {
    public static void main(String[] args) {
        SpringApplication.run(ConsumerApp.class, args);
    }
}

2·配置方式设置Ribbon的负载均衡策略

#配置方式设置Ribbon的负载均衡策略
EUREKA_PROVIDER: #设置服务提供方 的应用名称
  ribbon:
    NFloadBalanceRuleClassName: com.netflix.loadbalancer.RandomRule #策略类
上一篇 下一篇

猜你喜欢

热点阅读