<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      Spring Cloud 的ribbon的饑餓加載機制

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

      問題原因

       

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

      從日志中我們也能知道這一點細節(jié),在第一次發(fā)起調(diào)用的時候我們可以從日志中看到如下信息:


      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;] 
      },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] 
      ]}ServerList:ConsulServerList{serviceId='hello-service', tag=null} 

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

      解決方法

      解決的方法很簡單,既然第一次調(diào)用時候產(chǎn)生RibbonClient耗時,那么就讓它提前創(chuàng)建,而不是在第一次調(diào)用的時候創(chuàng)建。

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

      ribbon:
      	eager-load:
          	enabled:true
      	clients:kong-auth,kong-uc-service

      參數(shù)說明:

      • ribbon.eager-load.enabled:開啟Ribbon的饑餓加載模式
      • ribbon.eager-load.clients:指定需要饑餓加載的客戶端名稱、服務名
              通過上面的配置完成之后,我們嘗試重啟一下服務消費者,這個時候我們會發(fā)現(xiàn),我們沒有開始調(diào)用服務接口,但是上面初始化負載均衡的日志就已經(jīng)打印出來了。這就說明我們對ribbon的饑餓加載模塊設置已經(jīng)生效了。

       

      要解決Ribbon的饑餓加載問題,您可以通過以下方式進行配置:

      1. 在Ribbon客戶端的配置文件中,添加以下配置項:

       
       
       
       
       
         ribbon:
           eager-load:
             enabled: true
       
       
       

      或者在application.properties文件中添加以下配置項:

       
       
       
       
       
         ribbon.eager-load.enabled=true
       
       
       


      2. 在Spring Cloud的配置文件中,添加以下配置項:

         spring:
           cloud:
             ribbon:
               eager-load:
                 enabled: true

      或者在application.properties文件中添加以下配置項:

         spring.cloud.ribbon.eager-load.enabled=true

      通過設置eager-load.enabled為true,Ribbon將在應用啟動時立即加載所有服務實例的信息,而不是按需加載。這樣可以避免在第一次請求時出現(xiàn)延遲,從而解決饑餓加載的問題。

      請注意,以上配置適用于使用Spring Cloud Netflix Ribbon作為負載均衡器的情況。如果您使用的是Spring Cloud LoadBalancer作為負載均衡器,可以參考LoadBalancer的文檔來解決饑餓加載問題。

      另外,饑餓加載可能會增加應用啟動時間和內(nèi)存消耗,因此在配置饑餓加載時需要權衡考慮。 
       

       
       

      參考:https://blog.csdn.net/qq_28089993/article/details/80600032 

       
      posted @ 2023-08-25 06:33  Doyourself!  閱讀(293)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 亚洲国产精品第一区二区| 国产成人无码免费视频麻豆| 久久青草国产精品一区| 亚洲中文字幕无码中文字| 日韩av一区二区精品不卡| 国产成年女人特黄特色大片免费| 一卡二卡三卡四卡视频区| 久久av无码精品人妻出轨| 日韩中文字幕亚洲精品| 亚洲精品熟女一区二区| 湖南省| 九九热在线精品免费视频| 国产精品小一区二区三区| 国产精品久久久久久无毒不卡| 国产SM重味一区二区三区| 偷拍专区一区二区三区| 麻花传媒在线观看免费| 亚洲欧美日韩成人一区| 亚洲一区二区精品偷拍| 午夜精品极品粉嫩国产尤物 | 九九热免费在线视频观看| 99er热精品视频| 18禁一区二区每日更新| 99久久亚洲综合精品成人网| 精品无码久久久久久久动漫| 亲子乱aⅴ一区二区三区| 综合亚洲网| 在线播放国产精品三级网| 亚洲精品男男一区二区| 77777五月色婷婷丁香视频| 亚洲欧美成人综合久久久| 太深太粗太爽太猛了视频| 狠狠综合久久综合88亚洲| 国产乱人伦真实精品视频| 中文字幕乱码人妻二区三区| 天堂av在线一区二区| 亚洲激情在线一区二区三区 | 亚洲精品国模一区二区| 亚洲另类丝袜综合网| 国产办公室秘书无码精品99| 国产精品一区二区日韩精品|