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

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

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

      Loading

      [轉(zhuǎn)]Nginx主動(dòng)式后端服務(wù)器健康檢查配置

      環(huán)境:

      SpringCloud微服務(wù)(eureka注冊(cè)中心);
      nginx作為負(fù)載均衡;

      場(chǎng)景:

      Nginx -> A服務(wù)
      當(dāng)流量高峰期時(shí),kill A服務(wù)
      A服務(wù)還沒(méi)有掛掉,但是注冊(cè)中心狀態(tài)為OUT_OF_SERVICE,但是服務(wù)在Nginx的upstream中。
      Nginx的流量還是會(huì)到達(dá)A服務(wù),但是A服務(wù)Fegin接口調(diào)用其他服務(wù)時(shí),會(huì)出現(xiàn)異常情況。

      解決方案:

      Nginx主動(dòng)式調(diào)用服務(wù)器端的接口(自定義的監(jiān)控檢查接口)。
      自定義檢查接口:查詢(xún)Eureka的狀態(tài),若狀態(tài)不是up狀態(tài),那么返回500異常。
      Nginx收到500異常后,自動(dòng)將ip:port在upstream中摘除。

      代碼實(shí)現(xiàn):
      @RestController
      @Slf4j
      public class HealthController {
      
          @Autowired
          private EurekaClient eurekaClient;
      
          @RequestMapping(value = "/health/check/status", method = {RequestMethod.HEAD, RequestMethod.GET})
          public boolean checkStatus(HttpServletResponse response) {
              try {
                  InstanceInfo.InstanceStatus instanceRemoteStatus = eurekaClient.getInstanceRemoteStatus();
                  boolean up = InstanceInfo.InstanceStatus.UP.equals(instanceRemoteStatus);
                  //設(shè)置http的響應(yīng)碼
                  if (!up) {
                      response.setStatus(500);
                  }
                  return up;
              } catch (Exception e) {
                  return true;
              }
          }
      }
      
      Nginx配置:
      upstream student-service-api {
          server 172.26.34.101:9050;
          check interval=3000 rise=2 fall=5 timeout=1000 type=http;
          check_http_send "HEAD /health/check/status HTTP/1.0\r\n\r\n";
          check_http_expect_alive http_2xx http_3xx;
      }
      
      1. interval表示每隔3000毫秒向后端發(fā)送健康檢查包;
      2. rise表示如果連續(xù)成功次數(shù)達(dá)到2 服務(wù)器就被認(rèn)為是up;
      3. fail表示如果連續(xù)失敗次數(shù)達(dá)到5 服務(wù)器就被認(rèn)為是down;
      4. timeout表示后端健康請(qǐng)求的超時(shí)時(shí)間是1000毫秒;
      5. type表示發(fā)送的健康檢查包是http請(qǐng)求;
      6. check_http_send 表示http健康檢查包發(fā)送的請(qǐng)求內(nèi)容。為了減少傳輸數(shù)據(jù)量,推薦采用“head”方法;
      7. check_http_expect_alive 指定HTTP回復(fù)的成功狀態(tài),默認(rèn)認(rèn)為2XX和3XX的狀態(tài)是健康的;
      配置location,查看服務(wù)器的健康狀態(tài)
      location ~* /status {
          check_status;
          access_log   off;
      }
      

      原文:https://www.jianshu.com/p/beb9d8d26464
      參考:Nginx實(shí)戰(zhàn)系列之功能篇----后端節(jié)點(diǎn)健康檢查

      posted @ 2022-02-13 12:43  dai.sp  閱讀(673)  評(píng)論(0)    收藏  舉報(bào)
      主站蜘蛛池模板: 国产午夜福利在线观看播放| 内地偷拍一区二区三区| 天堂影院一区二区三区四区| 亚洲无av在线中文字幕| 精品国产色情一区二区三区 | 99热这里有精品| 亚洲欧美国产精品久久久久久久 | 欧美性猛交xxxx乱大交丰满| 一区二区三区无码视频免费福利| 不卡一区二区国产在线| 日韩在线视频线观看一区| www插插插无码免费视频网站| 91精品乱码一区二区三区| 中文字幕日韩国产精品| 日本国产精品第一页久久| 日韩高清免费一码二码三码| 玩两个丰满老熟女久久网| 一个人免费观看WWW在线视频| 国产日韩一区二区在线| 色综合久久一区二区三区| 高清中文字幕国产精品| 亚洲午夜爱爱香蕉片| 亚洲国产美女精品久久久| 国产成人av免费观看| 亚洲国产午夜精品福利| 精品人妻无码中文字幕在线| 久久本道综合久久伊人| 福利视频一区二区在线| 亚洲熟女乱色一区二区三区| 中文字幕无码av波多野吉衣| 国产午夜精品无码一区二区| 国产中文字幕久久黄色片| 玖玖在线精品免费视频| 蜜臀av久久国产午夜福利软件| 影视先锋av资源噜噜| 午夜一区二区三区视频| 国产资源精品中文字幕| 亚洲国产中文字幕在线视频综合| 激情综合网激情五月俺也去 | 中文字幕少妇人妻精品| 国产精品中文字幕在线|