Sentinel规则持久化--阿里云AHAS服务

刚开始学习sentinel时,感觉阿里的sentinel是真的,但是学着学着发现,当你的服务重启后,配置的规则全都没了;这样一来,重启一次服务配置一次规则,肯定头大,更别说要在生产环境中使用了。

搜集了很多sentinel持久化规则的资料,发现大部分资料介绍持久化有 拉模式, 再就是推模式,优点也有,缺点也有,个人觉得不是特别的友好,生产环境的话,先不说优缺点,改动的地方就特别多,所以不是那么 贴近生产环境。

好在阿里云的AHAS服务,可以托管我们的sentinel配置规则(当然不仅仅这些),接下来简单的介绍下如何接入AHAS服务

登录阿里云AHAS服务

访问 https://www.aliyun.com/product/ahas 并登录

点击开通免费版 并进入控制台

image-20200818144913298

免费版先玩玩吧 哈哈哈

配置应用防护

进入应用

image-20200818144944943

选择公网

image-20200818145142033

查看你的License

image-20200818145203798

接入服务

查看教程

image-20200818150711697

在pom中添加依赖

<dependency>
  <groupId>com.alibaba.csp</groupId>
  <artifactId>spring-boot-starter-ahas-sentinel-client</artifactId>
  <version>1.6.4</version>
</dependency>

注意 如果引入过sentinel的starter,删除sentinel-starter依赖

添加yml

ahas:
  license: 你的license
  namespace: default
project:
  name: ${spring.application.name}  ##自定义,我这里是用的微服务名称

不过,要把之前的sentinel的配置全部注释或者删除

启动你的服务,访问一次你的接口,查看应用防护

image-20200818151427502

点进去,是是监控面板

image-20200818151507820

点击左侧 规则设置,就是我们熟悉的界面了

image-20200818151545608

添加一个流控规则测试下

image-20200818151620976

注意!! 接口名称填写 @SentinelResource的value值才能生效 自定义的 blockHandlerfallbackHandler

我写的接口


    @GetMapping("/testA")
    @SentinelResource(value = "testA", blockHandler = "testAHandler")
    public String testA() {
        return "----testA" ;
    }
     //自定义blockHandler 一定要传入 BlockException 否则不起效
    public String testAHandler(BlockException blockException){
        return  "testA blockException-----" ;
    }

当访问我写的接口,QPS > 1时

image-20200818152037168

blockHandler生效,配置完毕

关于fallbackHandler配置不在赘述,再就是降级规则,热点规则,系统规则等,都跟sentinel控制台配置规则差不多,也不在演示了

总之,在生产环境中使用sentinel,把规则托管在阿里云的AHAS服务,效率高也比较方便😄

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值