1. 程式人生 > >什麼是 Ribbon?什麼是負載均衡?怎麼用Ribbon

什麼是 Ribbon?什麼是負載均衡?怎麼用Ribbon

Srping Cloud Ribbon 是基於 Netflix Ribbon實現的一套 客戶端  負載均衡的工具

簡甲的說,Ribbon是Netflix釋出的開源頂目,主要功能是提供客戶端的軟體負均衡演算法,將Netflix的中間層服務連線在一起。Ribbon窖戶端元件提供一系列完善配置項如連線超時,重試等。簡軍的說,就是在配置檔案中列出LoadBalancer〔簡稱LB)後面所有的機器,Ribbon會自動的幫助你基於某種規則(筒單輪洵,隨機連線等)去連線這些機器。我們也很容易使Ribbon實現自定義負載均衡演算法·

什麼是LoadBalancer?

LB,即負載均衡(L。adBalance),在微服務或分散式叢集中經常比的一種應用·
負載均衡簡單的說就是將使用者的滿求平灘的分配到多個務上,從而達到系統的HA。
常見的負載均衡有件Nginx,CVS,硬體F5等·

相應的在中介軟體,例如:dubbo和SpringCIoud中均給我們供了負載均衡。springcloud的負載均衡演算法可以自定義。

集中式LB

       即在服務的消費方和提供方之間使用獨立的LB設施(可以是硬體,如F5,也可以是軟體,如nginx),由該設施負責把訪問請求通過某種策略轉發至服務的提供方。

程序內LB

        將LB邏輯整合到消費方,消費方從服務註冊中心獲知有哪些地址可用,然後自己再從這些地址中選擇一個合適的伺服器。

Ribbon就屬於程序內LB,它是一個類庫,整合與消費方程序,消費方通過它來獲取到伺服器提供方的地址。

Ribbon怎麼使用?

第一步 在maven中配置需要的包 ,版本在父類中已經配置過

<!-- 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>

第二步修改springboot的配置檔案 (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/ 

第三部在我們的消費者端加入@LoadBalanced註解即可

package com.atguigu.springcloud.cfgbean;

import org.springframework.cloud.client.loadbalancer.LoadBalanced;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.client.RestTemplate;

@Configuration
public class ConfigBean {
	
	@Bean
	@LoadBalanced
	public RestTemplate getRestTemplate() {
		return new RestTemplate();
	}
	
}

第四主啟動類加入註解

package com.atguigu.springcloud;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;

@SpringBootApplication
@EnableEurekaClient
public class DeptConsumer80_App {
	
	public static void main(String[] args) {
		SpringApplication.run(DeptConsumer80_App.class, args);
	}
	
}

 大功告成。

有興趣的小夥伴可以加我QQ一起學習,目前還是在校生