• Sentinel入门开发


    链接:https://pan.baidu.com/s/1ma9TX38TabEbGdOyDSobvQ?pwd=s9zu

    1. Sentinel控制台启动
      java -Dserver.port=8888 -Dcsp.sentinel.dashboard.server=localhost:8888 -Dproject.name=sentinel-dashboard -jar sentinel-dashboard-1.8.1.jar
    2.  Sentinel控制台访问
      http://localhost:8888 端口8888为启动命令设置的,默认用户名和密码均为sentinel
    3.  添加父项目pom依赖
      1. UTF-8
      2. 1.8
      3. 1.8
      4. Hoxton.SR8
      5. 2.3.2.RELEASE
      6. 2.2.4.RELEASE
      7. org.springframework.cloud
      8. spring-cloud-dependencies
      9. ${spring-cloud.version}
      10. pom
      11. import
      12. org.springframework.boot
      13. spring-boot-dependencies
      14. ${springboot.version}
      15. pom
      16. import
      17. com.alibaba.cloud
      18. spring-cloud-alibaba-dependencies
      19. ${springcloudalibaba.version}
      20. pom
      21. import
    4.  添加子项目pom依赖
      1. com.alibaba.cloud
      2. spring-cloud-starter-alibaba-sentinel
      3. org.springframework.boot
      4. spring-boot-starter-web
      5. com.alibaba.csp
      6. sentinel-core
      7. com.alibaba.csp
      8. sentinel-transport-simple-http
      9. 1.8.0
      10. com.alibaba.csp
      11. sentinel-annotation-aspectj
      12. 1.8.0
      13. com.alibaba.csp
      14. sentinel-parameter-flow-control
      15. 1.4.0
      16. com.alibaba.csp
      17. sentinel-datasource-nacos
    5. VM options配置sentinel控制台
      -Dcsp.sentinel.dashboard.server=localhost:8888 -Dproject.name=sentinel-helloWorld 端口号8888要和Sentinel控制台启动时设置的端口号一致,Dproject.name为该项目在sentinel控
      制台显示的名称

    6.  注解方式定义资源
      1. /**
      2. * 添加配置类
      3. */
      4. @Configuration
      5. public class SentinelAspectConfiguration {
      6. @Bean
      7. public SentinelResourceAspect sentinelResourceAspect() {
      8. return new SentinelResourceAspect();
      9. }
      10. }
      1. /**
      2. * 注解方式定义资源
      3. * @SentinelResource value 资源名称
      4. * @SentinelResource blockHandler 调用被限流/降级/系统保护的时候调用的方法
      5. * @return
      6. */
      7. @SentinelResource(value = "helloWorld",blockHandler = "blockHandlerForHelloWorld")
      8. @RequestMapping("helloWorld")
      9. public String helloWorld(){
      10. return "Sentinel 大爷你好!by 注解方式@SentinelResource"+System.currentTimeMillis();
      11. }
      12. /**
      13. * 原方法调用被限流/降级/系统保护的时候调用
      14. * @param ex
      15. * @return
      16. */
      17. public String blockHandlerForHelloWorld(BlockException ex) {
      18. ex.printStackTrace();
      19. return "系统繁忙,请稍后!";
      20. }
    7. 测试流控资源helloWorld
      多次快速刷新:http://localhost:8090/helloWorld,由于helloWorld还未在Sentinel控制台定义,所以请求不会触发流控规则(注意:请求过流控资源后Sentinel控制台才会显示出项目名称)

    8.  Sentinel控制台添加流控资源helloWorld后再次测试
      多次快速刷新:http://localhost:8090/helloWorld,触发流控规则后进入blockHandlerForHelloWorld方法,返回报错提示

    9.  流控规则分析





    10.  降级规则分析


    11. Sentinel整合Nacos
      Sentinel定义的限流规则默认存储在内存中,Sentinel控制台重启后定义的限流规则将全部丢失,需要和Nacos进行整合实现规则数据的持久化(Nacos),注意:项目启动后,Nacos通过Json方式添加或者修改的流控规则,会被实时同步到Sentinel控制台,Sentinel原有的流控规则被覆盖,Sentinel控制台添加的流控规则不会被反向加载到Nacos,因此流控规则需要在Nacos添加,Sentinel控制台仅用来观测




    https://blog.csdn.net/caoli201314?type=blog

  • 相关阅读:
    共享内存区
    String类常用方法
    基于DJYOS的IIC驱动编写指导手册
    交叉编译QT报错问题
    【操作系统】第三章 内存管理
    百度地图、高德地图和腾讯地图定位不准确的解决方案
    矩阵分析与应用-18-Moore-Penrose逆矩阵02
    气传导和骨传导耳机哪个好?骨传导耳机优点更多
    【Linux】 ubuntu OpenCV环境搭建
    ASEMI整流桥GBJ3510参数,GBJ3510特征,GBJ3510大小
  • 原文地址:https://blog.csdn.net/tongxin_tongmeng/article/details/125975275