第一种方法:
在服务消费端的config类中编写方法:
①导入依赖:
<!-- eureka-client -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
<version>2.1.0.RELEASE</version>
</dependency>
②: 编写负载均衡方法
package com.itheima.consumer.config;
import com.netflix.loadbalancer.*;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class MyRule {
@Bean
public IRule TextRule() {
// new RoundRobinRule(); //轮询
// new BestAvailableRule(); //最小并发
// new AvailabilityFilteringRule(); //过滤
// new WeightedResponseTimeRule(); //响应时间
// new RetryRule(); //轮询重试
// new ZoneAvoidanceRule(); //性能可用性
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;
@EnableEurekaClient //EnableClient启动
@EnableDiscoveryClient //激活DiscoveryClient
@SpringBootApplication
/*
* 配置Ribbon负载均衡策略
* name:设置服务提供方应用名称
* configuration:设置负载均衡Bean
*/
@RibbonClient(name = "EUREKA-PROVIDER", configuration = MyRule.class)
public class ConsumerApplication {
public static void main(String[] args) {
SpringApplication.run(ConsumerApplication.class, args);
}
}
第二种方法:
①直接在配置文件中编写配置:(注意:使用第二种方法不需要在启动类编写启动策略)
# 配置方式 设置Ribbon的负载均衡
EUREKA-PROVIDER: # 设置服务提供方的 应用名称
ribbon:
NFloadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule #选择的策略类全路径名称
②启动类:
package com.itheima.consumer;
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;
@EnableEurekaClient //EnableClient启动
@EnableDiscoveryClient //激活DiscoveryClient
@SpringBootApplication
public class ConsumerApplication {
public static void main(String[] args) {
SpringApplication.run(ConsumerApplication.class, args);
}
}