成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Spring Cloud實戰小貼士:Ribbon的饑餓加載(eager-load)模式

大數據
我們在使用Spring Cloud的Ribbon或Feign來實現服務調用的時候,如果我們的機器或網絡環境等原因不是很好的話,有時候會發現這樣一個問題:我們服務消費方調用服務提供方接口的時候,第一次請求經常會超時,而之后的調用就沒有問題了。

[[205019]]

我們在使用Spring Cloud的Ribbon或Feign來實現服務調用的時候,如果我們的機器或網絡環境等原因不是很好的話,有時候會發現這樣一個問題:我們服務消費方調用服務提供方接口的時候,***次請求經常會超時,而之后的調用就沒有問題了。下面我們就來說說造成這個問題的原因,以及如何解決的方法。

問題原因

造成***次服務調用出現失敗的原因主要是Ribbon進行客戶端負載均衡的Client并不是在服務啟動的時候就初始化好的,而是在調用的時候才會去創建相應的Client,所以***次調用的耗時不僅僅包含發送HTTP請求的時間,還包含了創建RibbonClient的時間,這樣一來如果創建時間速度較慢,同時設置的超時時間又比較短的話,很容易就會出現上面所描述的顯現。

從日志中我們也能知道這一點細節,在***次發起調用的時候我們可以從日志中看到如下信息:

  1. 2017-09-25 08:29:54,201 INFO  [main] com.netflix.loadbalancer.DynamicServerListLoadBalancer - DynamicServerListLoadBalancer for client hello-service initialized: DynamicServerListLoadBalancer:{NFLoadBalancer:name=hello-service,current list of Servers=[192.168.99.176:9901],Load balancer stats=Zone stats: {unknown=[Zone:unknown;    Instance count:1;   Active connections count: 0;    Circuit breaker tripped count: 0;   Active connections per server: 0.0;] 
  2. },Server stats: [[Server:192.168.99.176:9901;   Zone:UNKNOWN;   Total Requests:0;   Successive connection failure:0;    Total blackout seconds:0;   Last connection made:Thu Jan 01 08:00:00 CST 1970;  First connection made: Thu Jan 01 08:00:00 CST 1970;    Active Connections:0;   total failure count in last (1000) msecs:0; average resp time:0.0;  90 percentile resp time:0.0;    95 percentile resp time:0.0;    min resp time:0.0;  max resp time:0.0;  stddev resp time:0.0] 
  3. ]}ServerList:ConsulServerList{serviceId='hello-service', tag=null

而Feign的實現基于Ribbon,所以它也有一樣的問題,下面就來看看如何解決這個問題。

解決方法

解決的方法很簡單,既然***次調用時候產生RibbonClient耗時,那么就讓它提前創建,而不是在***次調用的時候創建。

在Spring Cloud的Dlaston版本中提供了幾個新的參數,它們可以很方便的幫我們實現這樣的功能。

  1. ribbon.eager-load.enabled=true 
  2. ribbon.eager-load.clients=hello-service, user-service 

參數說明:

  • ribbon.eager-load.enabled:開啟Ribbon的饑餓加載模式
  • ribbon.eager-load.clients:指定需要饑餓加載的客戶端名稱、服務名

通過上面的配置完成之后,我們嘗試重啟一下服務消費者,這個時候我們會發現,我們沒有開始調用服務接口,但是上面初始化負載均衡的日志就已經打印出來了。這就說明我們對ribbon的饑餓加載模塊設置已經生效了。

【本文為51CTO專欄作者“翟永超”的原創稿件,轉載請通過51CTO聯系作者獲取授權】

戳這里,看該作者更多好文

責任編輯:武曉燕 來源: 51CTO專欄
相關推薦

2017-10-20 14:55:06

Spring ClouZuul加載

2017-08-10 16:14:07

FeignRPC模式

2017-05-18 14:14:25

過濾器Spring ClouZuul

2017-05-19 15:13:05

過濾器Spring ClouZuul

2017-05-02 23:05:44

HTTPZuulCookie

2017-07-31 15:47:50

Zuul統一處理

2023-08-29 17:51:22

Ribbon客戶端均衡器

2017-04-13 11:06:28

SpringCloud隨機端口

2017-10-18 16:00:14

SpringCloudZuul路徑

2017-08-09 15:50:47

Spring Clou微服務架構

2022-08-24 09:02:27

SwiftUIiOS

2021-11-04 10:11:02

Sentinel網關限流

2012-02-14 09:13:51

程序員

2025-03-04 02:20:00

EurekaNetflixSpring

2021-11-16 11:45:00

SpringSpring ClouJava

2021-02-02 11:02:20

React任務饑餓行為優先級任務

2017-12-01 08:54:18

SpringCloudHystrix

2022-01-07 07:29:08

Rbac權限模型

2013-07-02 11:01:01

2025-02-28 09:40:21

SidecarSCA服務
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 99热精品6| 欧美日韩一区在线 | 欧美中文一区 | 亚洲精品久久久久久久久久久 | 在线不卡视频 | 浮生影院免费观看中文版 | 免费成人在线网站 | 欧美亚洲免费 | 999久久久久久久久6666 | 免费黄色av | 一区二区三区在线免费看 | 亚洲国产精品人人爽夜夜爽 | 亚洲欧美日本在线 | 国产日韩精品一区二区三区 | 久久久久国产 | av中文字幕在线播放 | 国产一区二区三区精品久久久 | 日韩一及片 | 高清色视频 | 国产午夜精品视频 | 久久岛国 | 国产欧美日韩精品一区 | 99爱视频 | 天天插天天射天天干 | 九九九久久国产免费 | 亚洲美乳中文字幕 | 久久99精品久久久久久青青日本 | 国产精品久久久久久久久久久久久久 | 国产一区二区久久 | 中文字幕日韩欧美 | av免费网站在线观看 | 欧美偷偷操 | 九一在线观看 | 亚洲美女在线一区 | 懂色中文一区二区三区在线视频 | 国外成人免费视频 | 久久伊人在| 国产一级片免费看 | 日韩久草 | 亚洲精品一 | 男人天堂免费在线 |