Ribbon 负载均衡

Posted 方方方方方方

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Ribbon 负载均衡相关的知识,希望对你有一定的参考价值。

一、是什么
  Spring Cloud Ribbon 是基于 Netfix Ribbon 实现的一套客户端(服务的消费者)负载均衡的工具

二、用法

服务消费者工程的 pom.xml 添加如下内容

<!-- Ribbon相关 -->
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-eureka</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-ribbon</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-config</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

 服务消费者工程的 application.yml 

eureka:
  client:
    register-with-eureka: false
    service-url: 
      defaultZone: http://eureka7001.com:7001/eureka/,http://eureka7002.com:7002/eureka/,http://eureka7003.com:7003/eureka/  #连接 Eureka 集群

配置类 配置 RestTemplate,加上 @LoadBalanced 注解

@Configuration
public class ConfigBean 
{
    @Bean
    @LoadBalanced //客户端的负载均衡
    public RestTemplate geRestTemplate() 
    {
        return new RestTemplate();
    }
}

 结论

Ribbon 和 Eureka 整合后,Consumer 可以直接通过微服务名调用微服务,而不需要关心地址和端口号

 

 三、Ribbon 核心组件 IRule(Ribbon 默认算法的是轮询,一个挨一个)

IRule:根据特定算法从服务列表中选取一个访问服务

 

以上是关于Ribbon 负载均衡的主要内容,如果未能解决你的问题,请参考以下文章

nacos 负载均衡-Ribbon

05.负载均衡之Ribbon

SpringCloud -- Ribbon负载均衡(负载均衡流程负载均衡原理(探究原码)负载均衡策略懒加载(饥饿加载))

ribbon负载均衡详解

使用 负载均衡器 Ribbon 实现负载均衡

Ribbon-负载均衡策略