风暴俱乐部|Sentinel:分布式系统流量防卫兵
大家好 , 我是阿七 。
在说Sentinel 之前呢 , 我们先聊一聊雪崩效应 。 我们假设有A、B、C、D四个服务 , C/D服务调用B服务 , B调用A服务 , 某一时刻 , A服务因为网络原因或者bug问题 , 导致B在请求A的时候 , 迟迟没有回应 。 一次请求就是一个线程 , 如果在高并发场景下 , 瞬间会积累大量的请求 , 造成大量的线程阻塞(而线程是要消耗内存和CPU) , 那么时间一长 , B服务所在的服务器再也无法创建新的线程 , 于是导致B服务也挂了 。 同样的 , C和D最终也会挂掉 。 这就是雪崩效应 。 服务雪崩效应是一种因“服务提供者的不可用”(原因)导致“服务调用者不可用”(结果) , 并将不可用逐渐放大的现象 。
我们再结合一张图来看一下:
而Sentinel 就是用来防止服务雪崩 。 Sentinel 是一款由阿里开发的面向分布式服务架构的轻量级流量控制产品 , 主要以流量为切入点 , 从流量控制、熔断降级、系统负载保护等多个维度来保护服务的稳定性 。
一、整合Sentinel1、加依赖:
【风暴俱乐部|Sentinel:分布式系统流量防卫兵】2、加注解: 没有注解3、写配置:
#暴露actuatormanagement:endpoints:web:exposure:include: '*'
二、搭建Sentinel控制台1、下载启动控制台Sentinel有一个控制台 , 我们通过这个地址去下载jar包:https://github.com/alibaba/Sentinel/releases 。 我安装的是1.6.2版本 。
下载好之后 , 直接 java -jar sentinel-dashboard-1.6.2.jar , 就可以启动了 , 我们访问http://localhost:8080 , 默认账号密码都是sentinel便可以进入控制台 , 是这个样子滴 , 里面空空如也 。
2、为内容中心整合控制台我们只需加一个配置即可
spring:cloud:sentinel:transport:#指定sentinel控制台的地址dashboard: localhost:8080
3、测试体验此时 , 我们启动内容中心 , 然后请求几次接口:http://localhost:8889/shares/1我们再去控制台刷新一下看看 , ok , 有东西了 。 我们发现 , sentinel提供了很多的功能 , 流控、降级等等 , 下面就流控和降级作一下讲解 。
三、流控规则我们可以看到 , 流控规则有三种:直接、关联、链路 。
直接:直接限制请求 , 比如当我们设置单机阈值为1 , 然后我们频繁刷新接口 , 看看什么效果 。 哎 , 我们会发现被限流了 。
关联:当关联的资源达到阈值 , 就限流自己 。 比如当test1在1秒内请求超过1次时 , 就会限流shares/1接口 。
推荐阅读
- 虎扑足球|巴黎也是一样,莱昂纳多:任何俱乐部要签人都得先卖人
- M体育地带|青春风暴!意媒排出米兰U23首发阵容
- 魏翊东|罕见!京媒名嘴魏翊东怒怼国安俱乐部:瞻前顾后的,你在怕啥?
- 平地一声雷|你在怕啥?,罕见!京媒名嘴魏翊东怒怼国安俱乐部:瞻前顾后的
- 国内赛事|最具眼光的俱乐部!IG.Y再次夺得夏季赛冠军 焕烽发文祝贺
- 维特尔维斯塔潘|青春风暴席卷F1意大利站领奖台 加斯利能跟随维特尔维斯塔潘的步伐吗?
- 青年|兰陵王:我打不过风暴龙王,凯:我勉强打得过。他:这不难很轻松
- 舌尖尝美食美味|7000万欧!曼城即将签约意甲铁卫,双方达个人协议只差俱乐部点头
- 【】为避免与心爱俱乐部对簿公堂 梅西宣布暂留巴萨一年
- 淘易家居|梅杰里签约北控,李洪庆却“拆东墙补西墙”,俱乐部引援自相矛盾