Ribbon 负载均衡 - 踩坑 -2020 -win10 - idea

通过Ribbon实现负载均衡

说明

项目对应git 地址—> gitee

承接上一篇 eureka 级群搭建好了之后使用 —> eureka级群搭建

Ribbon是基于Netflix Ribbon实现的一套客户端负载均衡的工具

使用

在消费者端,通过简单的注解即可开启,非常方便

代码说明

  • pom.xml
<!--Ribbon相关-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka</artifactId>
<version>1.4.7.RELEASE</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework.cloud/springcloud-starter-ribbon -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-ribbon</artifactId>
<version>1.4.7.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-config</artifactId>
</dependency>

  • applicaation.yml
server:
  port: 80
#Eureka 配置
eureka:
  client:
    register-with-eureka: false # false 表示不向注册中心注册自己
    service-url:
    # defaultZone这个千万别打错了
      defaultZone: http://eureka7001.com:7001/eureka/,http://eureka7002.com:7002/eureka/,http://eureka7003.com:7003/eureka/
  • 配置文件,配置RestTemolate, 加上 @LoadBalanced

@Configuration
public class ConfigBean {

    @Bean
    @LoadBalanced // 重点。别忘记加!
    public RestTemplate getResTemplate(){
        return new RestTemplate();
    }
}
  • 启动类
@SpringBootApplication
@EnableEurekaClient // 开启
public class DeptConsumerRibbon80 {
    public static void main(String[] args) {
        SpringApplication.run(DeptConsumerRibbon80.class,args);
    }
}
  • 访问调用

之前是通过端口地址访问,配置好之后,就可以通过服务名字调用了,服务名就是spring.application.name。

// 单机
//    private static final String REST_URL_PREFIX = "http://localhost:8001";
// 搭好级群之后,整合ribbon,可直接使用服务名字
    private static final String REST_URL_PREFIX = "http://SPRINGCLOUD-PROVIDER-DEPT";
    
    // 方法举例
        @RequestMapping("/consumer/dept/list")
    public List list() {
        System.out.println(REST_URL_PREFIX + "/dept/list");
        return restTemplate.getForObject(REST_URL_PREFIX + "/dept/list", List.class);
    }

测试

可以将一个服务写三份,分三个端口启动,注册服务名相同,调用不同的数据加以区分。
经过测试,ribbon默认是按照服务注册的顺序去分配消费者每次访问所调用的服务。

猜你喜欢

转载自blog.csdn.net/weixin_43141746/article/details/107035777
今日推荐