当前位置: 首页 > article >正文

sentinel集成nacos

        sentinel参数会随着业务变动,所以集成nacos非常有必要。

        首先要引入三个包

        

    <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
        </dependency>
        <dependency>
            <groupId>com.alibaba.csp</groupId>
            <artifactId>sentinel-datasource-extension</artifactId>
        </dependency>
        <!-- 添加sentinel-datasource-nacos依赖 -->
        <dependency>
            <groupId>com.alibaba.csp</groupId>
            <artifactId>sentinel-datasource-nacos</artifactId>
        </dependency>

         

        这里我也贴出我的依赖,供大家参考,但是一定要调研引入包是否有冲突。

        然后就要做一下几个步骤:

        第一步:bootstrap.xml里面配置参数

        

spring:
  cloud:
    sentinel:
      eager: true
      datasource:
        flow-rule:
          nacos:
         #   server-addr: nacos-dev.mstpay-inc.com:8848
            data-id:  mustangpay-promo-center-server-sentinel-flow-rules.json
            namespace: ${spring.profiles.active}
            group-id: DEFAULT_GROUP
            rule-type: flow
            data-type: json

注意sentinel里面依赖的nacos配置一定要写到nacos里面,不要写到代码里面

        1、要注意安全性

        2、修改起来麻烦

        mustangpay-promo-center-server-sentinel-flow-rules.json文件里面数据要配置成json

        

[
  {
    "resource": "aa",
    "limitApp": "default",
    "grade": 1,
    "count": 2,
    "strategy": 0,
    "controlBehavior": 0,
    "clusterMode": false
  },
  {
    "resource": "bb",
    "limitApp": "default",
    "grade": 1,
    "count": 2,
    "strategy": 0,
    "controlBehavior": 0,
    "clusterMode": false
  }
]

        代码里面要引入一个切面

@Configuration
public class SentinelConfig {
    @Bean
    public SentinelResourceAspect sentinelResourceAspect() {
        return new SentinelResourceAspect();
    }
}
     

        Controller里面要按照下面配置

 @PostMapping(value = UrlConstants.MUSTANG_PAY_MERCHANT_ADD_ONE_DRAFT)
    @SentinelResource(value = "aa", blockHandler = "handleException", blockHandlerClass = {OnboardingExceptionUtil.class})
    public ResponseResult<MerchantSubmitResp> aa(@Validated @RequestBody MerchantSubmitReq req) {
       
        return merchantSubmitRespResponseResult;
    }

        加一个异常返回类,做一个页面的展示兼容即可。

        

@Slf4j
public class OnboardingExceptionUtil {
    public static ResponseResult<tt> handleException(c req, BlockException ex) {
        return ResponseResult.error("Oops! Please try again later.");
    }

    public static ResponseResult<bb> handleException(b req, BlockException ex) {
        return ResponseResult.error("Oops! Please try again later.");
    }

    public static ResponseResult<cc> handleException(List<a> files, BlockException ex) {
        return ResponseResult.error("Oops! Please try again later.");
    }

}
     


http://www.kler.cn/a/571324.html

相关文章:

  • 04 高效HarmonyOS NEXT编程:ArkTS数据结构优化与属性访问最佳实践
  • C++小课堂——构造函数与析构函数
  • Spring Cloud — 消息驱动 Stream
  • [python] del
  • 字节旗下两款AI编程工具
  • MySQL——DDL、DML
  • 从 ISO 到 GMT+8:Vue 前端时间格式的奇妙之旅!
  • 软件接口(API)自动化测试 顶级框架 封装
  • Spark 中分区相关设置
  • 拉格朗日对偶性(Lagrangian Duality)详解
  • 国产编辑器EverEdit - 优化性能的一些设置项
  • 74道高级Java面试合集,java开发模式面试题
  • 【http://noi.openjudge.cn/】4.3算法之图论——1538:Gopher II
  • 14天 -- Redis 的持久化机制有哪些?Redis 主从复制的实现原理是什么? Redis 数据过期后的删除策略是什么?
  • DeepSeek开源周-汇总
  • VB6网络通信软件开发,上位机开发,TCP网络通信,读写数据并处理,完整源码下载
  • Leetcode 3472. Longest Palindromic Subsequence After at Most K Operations
  • 【零基础到精通Java合集】第十六集:多线程与并发编程
  • vue2(笔记)4.0vueRouter.声明式/编程式导航以及跳转传参.重定向
  • 浅谈汽车系统电压优缺点分析