Spring Cloud Ribbon -- 负载均衡/服务调用

目录

一、什么是负载均衡
二、如何实现负载均衡

一、什么是负载均衡

负载均衡就是将用户的请求平坦非配给多个服务,从而达到系统的HA(高可用)。它是一种软负载均衡的软客户端组件,和restTemplate结合使用。

二、如何实现负载均衡(Eureka为例)

样例图

系统架构

Ribbon系统架构图

ribbon在eureka依赖中已经自带,所以不用特意引入。

自带轮询规则一览

修改默认轮询规则

⚠️注:ribbon不能放在@ComponentScan下面,所以要把myrule和主程序包分开建。
截屏2020-09-21 上午3.06.05.png

代码:
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);
    }
}

你可能感兴趣的:(Spring Cloud Ribbon -- 负载均衡/服务调用)