美文网首页
springcloud-gateway-sentinel整合避坑

springcloud-gateway-sentinel整合避坑

作者: nicohuhu | 来源:发表于2021-01-23 21:23 被阅读0次
第一步:导入依赖

工程搭建参考上一节gateway入门,sentinel也是在此基础上搭建的。

        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-alibaba-nacos-discovery</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-gateway</artifactId>
        </dependency>
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-alibaba-sentinel-gateway</artifactId>
        </dependency>
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
        </dependency>
第二步:配置yml
server:
  port: 9999
spring:
  application:
    name: sentinel-gateway
  cloud:
    nacos:
      discovery:
        server-addr: localhost:8848
    sentinel:
      transport:
        dashboard: localhost:8080  #sentinel的图形化界面访问路径
      scg:
        fallback:   #服务降级返回的响应结果
          mode: reponse
          response-status: 426
          response-body: error request
    gateway:
      discovery:
        locator:
          enabled: false   #开启表示根据微服务名称映射,就是微服务名称拼接到url中可以直接访问,但是不推荐这么使用 容易暴露微服务
#      enabled: false  #默认开启网关true,关闭网关false
第三步:启动网关

此时启动网关后我们就完成整合了,但是如何使用呢。

第四步:如何使用sentinel限流

首先下载sentinel dashboard监控管理页面的jar包,官网下载https://github.com/alibaba/Sentinel/releases/tag/v1.8.0,我这里使用v1.7版本

image.png

在cmd中运行java -jar D:\software\sentinel-dashboard-1.7.0后面跟上你的文件路径,可能会出错


image.png

我运行1.6jar包直接报错,更换1.7jar包后运行正常,一旦运行成功后,关闭后再次运行也会出错,所以我右击打开方式,选择Java(TM) Platform SE binary运行,任务管理器就会有这个服务,总之就是要运行编译这个jar包服务


image.png

然后访问是可以的账号密码都是sentinel,登录


image.png
一片空白
image.png

此时网关已经启动,我们随便掉一个接口返回成功即可,因为sentinel是懒加载的,需要请求来触发它。


image.png

此时就有了网关服务


image.png

用route id方式配置限流规则


image.png
image.png

其中order-center为yml中 routes的id,表示对这个微服务进行限流

spring:
  cloud:
    gateway:
      routes:
       - id: order-center #id必须要唯一
         uri: lb://order-center
         predicates:
          - Path=/order/**
       - id: product-center #id必须要唯一
         uri: lb://product-center
         #谓词工厂
         predicates:
           - Path=/product/**   #先匹配断言 然后追加或省略前缀

我们网页发起请求,点击请求一次,请求成功


image.png

我们一秒快速点击发起多次请求


image.png

请求太多会失败,每秒只允许一个请求,返回我们定义的降级状态码426


image.png

用api分组方式配置限流
先创建分组


image.png

然后这里就有了分组选择项


image.png
image.png
快速发起多次请求效果是一样的
image.png

总结:一旦项目重启sentinel中我们的这些配置都将消失,因为没有持久化,以上就是sentinel整合网关的简单应用。

相关文章

  • springcloud-gateway-sentinel整合避坑

    第一步:导入依赖 工程搭建参考上一节gateway入门,sentinel也是在此基础上搭建的。 第二步:配置yml...

  • SpringBoot 整合Ueditor 完美避坑

    SpringBoot 整合Ueditor 完美避坑 下载 先去官网下载开发包 http://ueditor.bai...

  • springboot-devtools整合避坑

    第一步:导入依赖 导入时可以放在maven父工程,也可以放在当前maven工程里。 一旦被引用后启动类上会显示de...

  • springboot-logback 整合避坑

    第一步 导入依赖 spring-boot-starter-web已经包含了logback,所以无需添加maven依...

  • 避坑

    Day10/21 【21天阅读挑战】 【书籍名称】 《我不是教你诈1》 作者:[美]刘墉 【阅读感受】 又到了毕业...

  • 避坑

    人这一辈子着实不容易,有时太平顺的路走着走着,忘了低头看路,就掉进坑里。有些坑浅,磕碰得灰头土脸鼻青脸肿的,...

  • 避坑

    前阵子读一本书 说中国的男人很惨 没有更年期 我就问我爸爸男人有没有更年期 他说没有 然后想起以前不会业务的老大 ...

  • [避坑]

    1 组件中引用canvas【一点要加this】 2 如在组件外调用组件内的canvas需要绑定上下文

  • 避坑

    1、 账号昵称、头像、个性签名、主页背景图等都不能出现违规内容。2、 新号一开始不要发布太长视频,完播率会很差,难...

  • 避坑

    一朝被蛇咬,不要十年怕井绳。踩过坑就要学会避坑,而不是怕坑。不重新开始,你的失败经历将永远贴上失败标签,未来你做任...

网友评论

      本文标题:springcloud-gateway-sentinel整合避坑

      本文链接:https://www.haomeiwen.com/subject/zwiuzktx.html