springcloud ribbon 饑餓加載原理解析
一、未饑餓加載前
我們的服務者端口是8081,消費者端口是8085
當我們將兩個項目都啟動的時候,在消費者里日志級別設置未debug,發(fā)現(xiàn)找不到8081
二、開啟饑餓加載
# 配置饑餓加載,d1為服務名
ribbon.eager-load.enabled=true
ribbon.eager-load.clients=d1
如果多個服務開啟饑餓模式,使用逗號分隔。 clients: userservice,orderservice
三、饑餓加載的原理
①特點:我們可以理解為一種優(yōu)化策略,
應用啟動時,Ribbon會根據(jù)配置立即向服務注冊中心發(fā)起請求,獲取指定服務的所有實例信息,并將其緩存起來。
② 優(yōu)點:
- 減少延遲:首次調用服務時不再需要等待從服務注冊中心獲取實例列表的時間,提高服務調用的響應速度。
- 避免雪崩效應:特別是在服務集群規(guī)模較大或網(wǎng)絡延遲較高的情況下,避免因首次請求時集中拉取服務列表引發(fā)的網(wǎng)絡擁塞或超時問題。
- 提升用戶體驗:特別適用于對啟動性能要求較高的場景,如系統(tǒng)啟動初期就有高并發(fā)請求的情況。
③ 缺點:
- 增加資源消耗:啟動時即加載所有服務實例可能導致額外的網(wǎng)絡資源消耗,特別是當服務實例數(shù)量眾多時。
- 數(shù)據(jù)實時性問題:如果服務實例的注冊狀態(tài)在應用啟動后發(fā)生變化(比如新增、移除或狀態(tài)變更),饑餓加載的數(shù)據(jù)可能不會立刻反映最新的服務列表,需要配合輪詢或其他更新機制來保持數(shù)據(jù)同步。
- 注意:雖然以上描述了Ribbon的一種潛在優(yōu)化策略,但在官方文檔或最新版本的Spring Cloud體系中,對Ribbon的饑餓加載特性并沒有明確支持。不過開發(fā)者可以根據(jù)需求自行實現(xiàn)類似的邏輯,以實現(xiàn)在應用啟動時預先加載服務實例信息的目的。
到此這篇關于springcloud - ribbon 饑餓加載的文章就介紹到這了,更多相關springcloud ribbon 加載內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
微服務springcloud 03.Eureka實現(xiàn)高可用的過程
這篇文章主要介紹了微服務springcloud 03.Eureka實現(xiàn)高可用的相關資料,本文給大家介紹的非常詳細,需要的朋友可以參考下2024-07-07IDEA生成patch和使用patch的方法實現(xiàn)
比如你本地修復的 bug,需要把增量文件發(fā)給客戶,很多場景下大家都需要手工整理修改的文件,并整理好目錄,這個很麻煩,那有沒有簡單的技巧呢?本文主要介紹了IDEA生成patch和使用patch的方法實現(xiàn),感興趣的可以了解一下2023-08-08詳解spring中使用Elasticsearch的代碼實現(xiàn)
本篇文章主要介紹了詳解spring中使用Elasticsearch的代碼實現(xiàn),具有一定的參考價值,有興趣的可以了解一下2017-05-05