1. 程式人生 > >Ribbon 負載均衡

Ribbon 負載均衡

rule gist emp 配置 artifact 圖片 reg () star

一、是什麽
  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 負載均衡