SpringCloud Ribbon負載均衡的實現

之間通過幾篇文章簡單介紹的eureka的使用及相關的知識,
今天開始主要講解分佈式系統框架中的另一重要構成:負載均衡

什麼是負載均衡:
摺疊負載均衡(LoadBalance)提供了一種廉價有效透明的方法擴展網絡設備和服務器的帶寬、增加吞吐量、加強網絡數據處理能力、提高網絡的靈活性和可用性。是集羣技術(Cluster)的一種應用,可以將工作任務分攤到多個處理單元,從而提高併發處理能力。

熟悉的分佈式負載均衡的實現方式大概包括以下幾種:
nginx\lvs\ribbon

負載均衡的策略:

  • 輪詢 :依次發送請求到後端服務
  • 權重:根據權重配置分發請求,服務器性能好的可以權重大一些
  • IP哈希:根據算法確定請求服務器,同一個地址的客戶端,始終請求同一臺主機
  • 最少訪問:負載均衡器把請求給負載最小的哪臺服務器

我們主要介紹的就是springcloud全家桶中的ribbon,因爲目前的開發框架中,spring已經成爲了必不可少的主力軍,而作爲全家桶中的一份子,無疑的ribbon是可以很好的接入到spring框架中的。下面我們開始今天的內容:

Ribbon是什麼?

  • 一款客戶端的負載均衡工具
  • 主要功能:提供客戶端的負載均衡算法,提供一系列完整的配置:連接超時,重試等,簡單的說就是在配置文件中列出LB(負載均衡)後面的所有機制,ribbon會自動的根據某種規則(隨機、輪詢… …)去連接機器
  • 我們也可以實現自定義的負載均衡的算法

Ribbon集成
1)目錄結構:
在這裏插入圖片描述
ribbon作爲客戶端的實現,所以我們只需要修改80項目即可
2)修改pom.xml

	<!-- 添加依賴 -->
	<!-- Eureka依賴 -->
	<dependency>
	    <groupId>org.springframework.cloud</groupId>
	    <artifactId>spring-cloud-starter-eureka</artifactId>
	    <version>1.4.6.RELEASE</version>
	</dependency>
	<!-- Ribbon依賴 -->
	<dependency>
	    <groupId>org.springframework.cloud</groupId>
	    <artifactId>spring-cloud-starter-ribbon</artifactId>
	    <version>1.4.6.RELEASE</version>
	</dependency>

3)修改application.yml

#Eureka 配置
eureka:
  client:
    register-with-eureka: false #不向服務器註冊自己
    service-url:
      defaultZone: http://eurekaServer7001.com:7001/eureka/,http://eurekaServer7002.com:7002/eureka/

4)啓動類開啓eureka

@EnableEurekaClient
public class ConApplication {
  1. 配置Ribbon負載均衡,修改配置類
@Configuration
public class BeanConfig {

    //配置RestTemplate爲負載均衡Ribbon
    @Bean
    @LoadBalanced
    public RestTemplate getRestTemplate(){
        return new RestTemplate();
    }

}

6)修改請求方式

	//private static final String rest_url = "http://localhost:8081";
    //ribbon實現,請求地址應該是一個變量,及我們註冊eureka的服務名稱
    private static final String rest_url = "http://peo8081";

至此,ribbon負載均衡(默認策略)就集成成功

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章