目录
一、什么是负载均衡
二、如何实现负载均衡
一、什么是负载均衡
负载均衡就是将用户的请求平坦非配给多个服务,从而达到系统的HA(高可用)。它是一种软负载均衡的软客户端组件,和restTemplate结合使用。
二、如何实现负载均衡(Eureka为例)
系统架构
ribbon在eureka依赖中已经自带,所以不用特意引入。
自带轮询规则一览
修改默认轮询规则
⚠️注:ribbon不能放在@ComponentScan下面,所以要把myrule和主程序包分开建。代码:
myrule
package com.atguigu.myrule;
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 MySelfRule {
@Bean
public IRule myRule(){
return new RandomRule(); //定义为随机
}
}
⚠️注意在主启动类要加入@RibbonClient
package com.atguigu.springcloud;
import com.atguigu.myrule.MySelfRule;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
import org.springframework.cloud.netflix.ribbon.RibbonClient;
@SpringBootApplication
@EnableEurekaClient
@RibbonClient(name = "CLOUD-PAYMENT-SERVICE" , configuration = MySelfRule.class)
//@EnableDiscoveryClient
public class OrderMain80 {
public static void main(String[] args) {
SpringApplication.run(OrderMain80.class,args);
}
}