热点规则
热点就是经常访问的数据。很多时候我们希望争对某一些热点数据,然后来进行限制。比如说商品的信息这个服务,我们给它做一个限流,qps是100,某一天我想做一个秒杀活动,可能会有很大的流量,这个时候一个商品的qps就达到100了,这个时候就会把流量给他控制住。其他的商品就都看不了。
我希望秒杀这个商品,只把秒杀这个上商品id来的请求,它的qps限制在50,剩下还能留下50给我其他的商品。这是我们碰到的场景。
这个时候我们就需要我们能根据请求的参数来做限流。带的参数是我的热点参数,就给你应用一个特殊的规则。没带我的热点参数,非热点有另外一个限流规则。但是他们调用的是同一个服务。
说白了就是,针对同一个资源,针对不同的参数做不同的流量规则。

sentinel里面这个规则怎么去实现

给getInfo方法加上sentinel的注解。做成一个Resource,然后才可以根据getInfo来制定一些规则

我们根据id的参数不同做限流的规则

这样我就声明了一个新的资源。

启动orderAPI


返回回来就是一个订单信息。

这样服务就调用通了,有了一些流量后。就是多点击按钮访问这个服务几次,至少5次以上吧

id为1的qps是1,id不为1 的qps(阀值)是10.

建好的规则

现在传的是2 qps是10,怎么快速的的点击按钮访问 都不会有限流的问题。

换成id为1,如果一但点快了。返回500 就说明被限流了。

id是1的时候抛出了ParamFlowException的异常

id是2的都没有被限流。

系统规则

和其他的规则不太一样,它是针对应用来设的。前面设置的都是争对某一个资源。某一个方法来设置的。
系统规则是争对当前这个orderAPI应用整天来设置的。

load是负载,只有在linux机器上才会生效。根据当前系统的负载来决定是不是触发保护。
RT:这个应用上所有的流量的平均的响应时间,也就是我orderAPi上有好多服务,这些所有服务的平均响应时间超过一个值,那么我就停止接收新的请求,
线程数:所有服务访问的线程数加起来
入口qps:所有服务的qps加起来达到一个值
cpu使用率:cpu的使用率超过一个百分比,
发生以上这些情况的时候把你整个应用给你断掉。所有服务都不提供了,所有请求都被挡住了。这个设置很少用,因为它太粗了。一般都是做细粒度的流控啊、熔断降级。如果设置了 很可能你都不知道怎么回事 ,你的服务就访问不了。 所以一般很少去这么设置。

系统规则简单了解下就可以了。

结束

Spring cloud微服务安全实战-6-10sentinel之热点和系统规则的更多相关文章

  1. 《Spring Cloud微服务 入门 实战与进阶》

    很少在周末发文,还是由于昨晚刚收到实体书,还是耐不住性子马上发文了. 一年前,耗时半年多的时间,写出了我的第一本书<Spring Cloud微服务-全栈技术与案例解析>. 时至今日,一年的 ...

  2. Spring Cloud微服务安全实战_00_前言

    一.前言: 一直以来对服务安全都很感兴趣,所以就学习.这是学习immoc的 jojo老师的 <Spring Cloud微服务安全实战课程>的笔记,讲的很好. 课程简介:  二.最终形成的架 ...

  3. Spring cloud微服务安全实战_汇总

    Spring cloud微服务安全实战 https://coding.imooc.com/class/chapter/379.html#Anchor Spring Cloud微服务安全实战-1-1 课 ...

  4. Spring Cloud微服务安全实战_4-5_搭建OAuth2资源服务器

    上一篇搭建了一个OAuth2认证服务器,可以生成token,这篇来改造下之前的订单微服务,使其能够认这个token令牌. 本篇针对订单服务要做三件事: 1,要让他知道自己是资源服务器,他知道这件事后, ...

  5. Spring Cloud微服务安全实战_4-3_订单微服务&价格微服务

    实现一个场景: 订单微服务: POM: <?xml version="1.0" encoding="UTF-8"?> <project xml ...

  6. Spring cloud微服务安全实战 最新完整教程

    课程资料获取链接:点击这里 采用流行的微服务架构开发,应用程序访问安全将会面临更多更复杂的挑战,尤其是开发者最关心的三大问题:认证授权.可用性.可视化.本课程从简单的API安全入手,过渡到复杂的微服务 ...

  7. Spring cloud微服务安全实战-6-8sentinel限流实战

    阿里2018年开源的. 简单来说就是干三件事,最终的结果就是保证你的服务可用,不会崩掉.保证服务高可用. 流控 先从最简单的场景来入手. 1.引用一个依赖, 2,声明一个资源. 3.声明一个规则 注意 ...

  8. Spring cloud微服务安全实战-6-4权限控制改造

    授权,权限的控制 令牌里的scope包含fly就有权限访问.根据Oauth的scope来做权限控制, 要让@PreAuthorize生效,就要在启动类里面写一个注解. 里面有一个属性叫做,就是在方法的 ...

  9. Spring cloud微服务安全实战-6-2JWT认证之认证服务改造

    首先来解决认证的问题. 1.效率低,每次认证都要去认证服务器调一次服务. 2.传递用户身份,在请求头里面, 3.服务之间传递请求头比较麻烦. jwt令牌. spring提供了工具,帮你在微服务之间传递 ...

  10. Spring cloud微服务安全实战-5-7实现基于session的SSO(客户端应用的Session有效期)

    授权模式改造成了Authorization code完成了改造的同时也实现了SSO.微服务环境下的前后端分离的单点登陆. 把admin的服务重启.刷新页面 并没有让我去登陆,直接就进入了首页. ord ...

随机推荐

  1. geopy 在python中的使用

    https://blog.csdn.net/learn_tech/article/details/80756788 2018年06月21日 10:35:52 learn_tech 阅读数:1182   ...

  2. python测试开发django-rest-framework-60.使用token登录(authentication之TokenAuthentication)

    前言 现在很多接口项目在登录的时候返回一个token,登录后的拿着这个token去访问访问登录之后的请求. 本篇使用djangorestframework框架写一个登陆的接口,登录成功后返回token ...

  3. git免密

    免账号密码输入 git clone https://lichuanfa%40gitcloud.com.cn:lcf13870752164@git.c.citic/Citic-Data/bigdata_ ...

  4. 10、Python迭代器与生成器(iterator、for循环、generator、yield)

    一.迭代器(foreach) 1.可迭代的对象 内置有__iter__方法的都叫可迭代的对象. Python内置str.list.tuple.dict.set.file都是可迭代对象. x = 1._ ...

  5. zabbix4.2.5常见问题指南

    一.zabbix配置postgres监控 rpm -ivh https://download.postgresql.org/pub/repos/yum/9.5/redhat/rhel-7-x86_64 ...

  6. Keil MDK5生成 .bin文件的简单教程(图文)

    以下参考https://blog.csdn.net/u014563989/article/details/51127519,同时自己实测. 1.按如图步骤做,主要是要找到fromelf.exe的路径: ...

  7. Expectation Maximization Algorithm

    期望最大化算法EM. 简介 EM算法即期望最大化算法,由Dempster等人在1976年提出[1].这是一种迭代法,用于求解含有隐变量的最大似然估计.最大后验概率估计问题.至于什么是隐变量,在后面会详 ...

  8. 关于#pragma once和#ifndef

    [1]#pragma once这个宏有什么作用? 为了避免同一个头文件被包含(include)多次,C/C++中有两种宏实现方式:一种是#ifndef方式:另一种是#pragma once方式.在能够 ...

  9. 洛谷 P4281 [AHOI2008] 紧急集合 题解

    挺好的一道题,本身不难,就把求两个点的LCA变为求三个点两两求LCA,不重合的点才是最优解.值得一提的是,最后对答案的处理运用差分的思想:假设两点 一点深度为d1,另一点 深度为d2,它们LCA深度为 ...

  10. 数组(Array)的常规操作2

    数组的常规操作2 常用属性 length属性:数组的长度: prototype:原型 常用数组(Array)操作方法 form 在一个类数组中创建一个新的数组实列 isArry is就是判断是否为Ar ...