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

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

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

      sentinel接入記錄

            1.引入pom依賴

           

      <!-- SpringCloud ailibaba sentinel-datasource-nacos 持久化需要用到-->
              <dependency>
                  <groupId>com.alibaba.csp</groupId>
                  <artifactId>sentinel-datasource-nacos</artifactId>
              </dependency>
      
      <!-- SpringCloud ailibaba sentinel-->
              <dependency>
                  <groupId>com.alibaba.cloud</groupId>
                  <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
              </dependency>
      <dependency>
                  <groupId>com.alibaba.csp</groupId>
                  <artifactId>sentinel-transport-simple-http</artifactId>
              </dependency>
              <dependency>
                  <groupId>com.alibaba.csp</groupId>
                  <artifactId>sentinel-web-servlet</artifactId>
              </dependency>
      
              <!-- SpringCloud ailibaba sentinel-datasource-nacos 持久化需要用到-->
              <dependency>
                  <groupId>com.alibaba.csp</groupId>
                  <artifactId>sentinel-datasource-nacos</artifactId>
              </dependency>
      
              <!-- 引入 Sentinel 數據源 -->
              <dependency>
                  <groupId>com.alibaba.cloud</groupId>
                  <artifactId>spring-cloud-alibaba-sentinel-datasource</artifactId>
              </dependency>
      <dependency>
                  <groupId>com.alibaba.csp</groupId>
                  <artifactId>sentinel-core</artifactId>
              </dependency>
              <dependency>
                  <groupId>com.alibaba.csp</groupId>
                  <artifactId>sentinel-annotation-aspectj</artifactId>
          </dependency>

       版本好統一按照

      <version>1.8.3</version> 
      為例。

      2.本機啟動
      首先需要再idea的啟動腳本添加命令
      -Dserver.port=8080 -Dcsp.sentinel.dashboard.server=localhost:8081 -Dproject.name=項目別名

       其中,-Dserver.port是自己的項目名稱,-Dcsp.sentinel.dashboard.server  是sentinel開啟控制臺的端口號,-Dproject是自己的項目名稱

      3.再項目里面使用sentinel做限流

          sentinel 有兩種方式都可以做限流和降級,一種方式是直接再spring bean里面使用fallback以及blockHandler注解,另外一種方式則是和openFeign整合。目前項目里面使用的是第一種方式。

           注意一點,使用sentinel需要相應的bean被spring容器加載進去。

         

      @Service
      public class QueryRecommentServiceImpl{
      
      @SentinelResource(value = "queryRecommend", fallback = "getStaticData",blockHandler = "blockExceptionHandler")
          public List<String> queryRecommend(HomeRecommendStreamQuery query, HomeRecommendStreamDto streamDto, String sourceApp) {
        return null;
      }
      
      
      
      public List<String> getStaticData(HomeRecommendStreamQuery query, HomeRecommendStreamDto streamDto, String sourceApp) {
              logger.info("==========start sentinel 降級策略==========");
              try {
                  Random random = new Random();
                  int r = random.nextInt(100) + 1;
                  logger.debug("========隨機從緩存獲取一組帖子id:" + r);
                  Set<String> stringSet = gwmRedisTemplate.opsForValue().get(RedisConstants.THREAD_HOT_SCORE_KEY + r);
      
                  logger.debug("=========隨機從緩存獲取帖子result=======" + JSONObject.toJSON(stringSet));
                  if (CollectionUtils.isNotEmpty(stringSet)) {
                      List<String> stringList = new ArrayList<>(stringSet);
      
                      return stringList;
                  } else {
                      logger.debug("============讀取默認配置數據========" + config.getPostIds());
                      return Optional.ofNullable(config.getPostIds()).orElse(Collections.emptyList());
                  }
              } catch (Exception e) {
                  throw new RuntimeException(e);
              }
          }
      
          /**
           * blockHandler需要設置為static
           *
           * @param ex
           * @return
           */
          public  List<String> blockExceptionHandler(HomeRecommendStreamQuery query, HomeRecommendStreamDto streamDto, String sourceApp,BlockException ex) {
              try {
                  Random random = new Random();
                  int r = random.nextInt(100) + 1;
                  logger.debug("========隨機從緩存獲取一組帖子id:" + r);
                  Set<String> stringSet = gwmRedisTemplate.opsForValue().get(RedisConstants.THREAD_HOT_SCORE_KEY + r);
      
                  logger.debug("=========隨機從緩存獲取帖子result=======" + JSONObject.toJSON(stringSet));
                  if (CollectionUtils.isNotEmpty(stringSet)) {
                      List<String> stringList = new ArrayList<>(stringSet);
      
                      return stringList;
                  } else {
                      logger.debug("============讀取默認配置數據========" + config.getPostIds());
                      return Optional.ofNullable(config.getPostIds()).orElse(Collections.emptyList());
                  }
              } catch (Exception e) {
                  throw new RuntimeException(e);
              }
          }
      
      
      }

        

      Sentinel 提供了 @SentinelResource 注解用于定義資源,并提供了 AspectJ 的擴展用于自動定義資源、處理 BlockException 等。使用 Sentinel Annotation AspectJ Extension 的時候需要引入以下依賴:

      <dependency>
          <groupId>com.alibaba.csp</groupId>
          <artifactId>sentinel-annotation-aspectj</artifactId>
          <version>x.y.z</version>
      </dependency>
      
       之后再控制臺界面就可以進行設置了。
       另外就是如果想要每次啟動讓sentinel生效,需要再配置一個sentienl的yaml配置,每次項目啟動可以自動生效,大概格式如下:
       
      [
          {
              "resource":"queryRecommend",
              "controlBehavior":0,
              "count":20,
              "grade":1,
              "limitApp":"default",
              "strategy":0
          }
      ]

       

      posted @ 2024-10-11 10:17  Doyourself!  閱讀(43)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 国产黑色丝袜在线播放| 欧美精品国产综合久久| 国产精品一二区在线观看| 17岁日本免费bd完整版观看| 99久热在线精品视频| 99久久精品美女高潮喷水| 亚洲成a人片在线观看中| 欧美日韩国产图片区一区| 久久久久久伊人高潮影院| 国产伦精品一区二区三区妓女下载| 国产精品白浆在线观看免费| 中文字幕国产精品一区二| 午夜福利精品国产二区| 四虎国产精品永久入口| 婷婷99视频精品全部在线观看 | 中国熟女仑乱hd| 亚洲一区二区三区av链接| 午夜福利片1000无码免费| 亚洲国产精品一区在线看| 亚洲一区在线观看青青蜜臀| 国产成人影院一区二区三区| 国产乱人对白| 日韩在线视频网| 国产成人自拍小视频在线| 精品日韩亚洲AV无码| 兴宁市| 日本三级理论久久人妻电影| 国产在线欧美日韩精品一区| 锦屏县| 国产精品一区二区不卡91| 亚洲精品综合网二三区| 男女无遮挡激情视频| 成人欧美日韩一区二区三区| 亚洲欧美日韩综合一区在线| 四虎精品国产精品亚洲精| 国产三级国产精品国产专| 熟女系列丰满熟妇AV| 国产又色又爽又黄的在线观看| 日韩精品三区二区三区| 国产成人精品av| 亚洲aⅴ无码专区在线观看q|