SpringCloud之Ribbon負載均衡配置


一、負載均衡解決方案分類及特征

  業界主流的負載均衡解決方案有:

  1.1 集中式負載均衡

  即在客戶端和服務端之間使用獨立的負載均衡設施(可以是硬件,如F5, 也可以是軟件,如nginx), 由該設施負責把訪問請求通過某種策略轉發至服務端。
            

  1.2 進程內負載均衡

  將負載均衡邏輯集成到客戶端組件中,客戶端組件從服務注冊中心獲知有哪些地址可用,然后自己再從這些地址中選擇出一個合適的服務端發起請求。Ribbon就是一個進程內的負載均衡實現。

            

二、Ribbon常用負載均衡策略

  Ribbon就屬於進程內負載均衡,它只是一個類庫,集成於Eureka Client進程,Eureka Client進程通過訪問注冊中心Eureka Server發現服務列表,發現的服務列表信息是由ribbon來管理的。當訪問Application Service的時候,Application Client會通過ribbon來找到合適的Application Service地址信息,並發起遠程調用請求。

  Ribbon的負載均衡策略是通過不同的類型來實現的,下表詳細介紹一些常用負載均衡策略及對應的Ribbon策略類。

     

 三、指定負載均衡策略

  可以通過全局配置文件來改變當前環境中使用的Ribbon負載均衡策略。在Ribbon中沒有通用的負載均衡策略配置方案。

#設置負載均衡策略 eureka-application-service為調用的服務的名稱
eureka-application-service.ribbon.NFLoadBalancerRuleClassName=com.netflix.loadbalancer.RandomRule

四、 點對點直連測試

  在商業開發中,經常會更新或升級部分服務。當系統某服務出現bug后,需要修改並再次測試。如果還是通過生產環境中的注冊中心來注冊發現服務,那么影響面太大。這個時候可以考慮將Application Service注冊到一個測試Eureka Server上,使用點對點直連的方式讓Application Client直接訪問Application Service,打到測試的目的。
  使用點對點直連測試很容器。只要在啟動的時候避免注冊和發現服務(刪除啟動類上的@EnableEurekaClient注解),並在全局配置文件中配置下述內容即可。(全局配置文件中關於Eureka Server的配置可刪除)。

spring.application.name=eureka-application-client
server.port=8080 # 點對點直連是不發現服務,不是不注冊服務。 # 任何Eureka Client都必須注冊。如果沒有配置Eureka Server節點列表,則注冊失敗。Eureka client無法正常啟動。 eureka.client.serviceUrl.defaultZone=http://eurekaserver1:111111@eurekaserver1:8761/eureka/,http://eurekaserver2:222222@eurekaserver2:8761/eureka/ #點對點直連測試配置 # 關閉ribbon訪問注冊中心Eureka Server發現服務,但是服務依舊會注冊。 ribbon.eureka.enabled=false # 配置服務列表,其中eureka-application-service代表要訪問的服務的應用名,如果有多個服務結點組成集群,多個節點的配置信息使用逗號','分隔。 # 配置服務列表,需要配置要調用的服務的名字和服務所在的位置。 # 服務的名字,就是Application Service中配置的spring.application.name。 # 服務的位置,就是服務的所在ip和端口。 # 如果服務位置有多個,也就是服務集群,那么使用逗號','分割多個服務列表信息。 eureka-application-service.ribbon.listOfServers=localhost:8083


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM