SpringCloud?Ribbon負載均衡原理
一、Ribbon負載均衡原理
1 負載均衡原理
2 負載均衡策略(IRule接口)
Ribbon的負載均衡規(guī)則是一個叫做IRule
的接口來定義的,每一個子接口都是一種規(guī)則:
通過定義IRule實現(xiàn)可以修改負載均衡規(guī)則,有兩種方式:
代碼方式:在order-service中的OrderApplication類中,定義一個新的IRule:(全局配置)
?@Bean ?public IRule randomRule() { ? ?return new RandomRule(); ?}
配置文件方式:在order-service的application.yml文件中,添加新的配置也可以修改規(guī)則:(針對某個微服務而言)
?userservice: ? ribbon: ? ? NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule# 負載均衡規(guī)則
3 Ribbon默認懶加載
Ribbon默認是采用懶加載,即第一次訪問時才會去創(chuàng)建LoadBalanceClient,請求時間會很長。
而饑餓加載則會在項目啟動時創(chuàng)建,降低第一次訪問的耗時,通過下面配置開啟饑餓加載:
?ribbon: ? eager-load: ? ? enabled: true # 開啟饑餓加載 ? ? clients: # 指定饑餓加載的服務名稱 ? ? ? - userservice
4 總結:Ribbon負載均衡規(guī)則、自定義、饑餓加載
Ribbon負載均衡規(guī)則
- 規(guī)則接口是IRule
- 默認實現(xiàn)是ZoneAvoidanceRule,根據(jù)zone選擇服務列表,然后輪詢
負載均衡策略自定義方式
- 代碼方式:配置靈活,但修改時需要重新打包發(fā)布
- 配置方式:直觀,方便,無需重新打包發(fā)布,但是無法做全局配置
饑餓加載
- 開啟饑餓加載
- 指定饑餓加載的微服務名稱
到此這篇關于SpringCloud Ribbon負載均衡原理的文章就介紹到這了,更多相關SpringCloud Ribbon內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
解析ConcurrentHashMap: 預熱(內(nèi)部一些小方法分析)
ConcurrentHashMap是由Segment數(shù)組結構和HashEntry數(shù)組結構組成。Segment的結構和HashMap類似,是一種數(shù)組和鏈表結構,今天給大家普及java面試常見問題---ConcurrentHashMap知識,一起看看吧2021-06-06SpringBoot對靜態(tài)資源的映射規(guī)則詳解解讀
這篇文章主要介紹了SpringBoot對靜態(tài)資源的映射規(guī)則詳解解讀,在Spring Boot中,映射規(guī)則是用來定義URL與控制器方法之間的映射關系的,通過映射規(guī)則,可以將特定的URL請求映射到相應的控制器方法上,從而實現(xiàn)請求的處理和響應的返回,需要的朋友可以參考下2023-10-10SpringBoot整合PageHelper實現(xiàn)分頁查詢功能詳解
PageHelper是mybatis框架的一個插件,用于支持在mybatis執(zhí)行分頁操作。本文將通過SpringBoot整合PageHelper實現(xiàn)分頁查詢功能,需要的可以參考一下2022-03-03java面試常見問題---ConcurrentHashMap
ConcurrentHashMap是由Segment數(shù)組結構和HashEntry數(shù)組結構組成。Segment的結構和HashMap類似,是一種數(shù)組和鏈表結構,今天給大家普及java面試常見問題---ConcurrentHashMap知識,一起看看吧2021-06-06