当前位置:网站首页>阿里云微服务(三)Sentinel开源流控熔断降级组件
阿里云微服务(三)Sentinel开源流控熔断降级组件
2022-07-06 09:19:00 【几何学家】
微服务中,稳定性一直是一个避不开的话题,很多时候,会遇到大流量忽然到系统上导致系统扛不住
比如淘宝的双十一促销可能会出现
1.瞬间洪峰超过最大负载
2.激增流量打垮系统
3.热点商品挤占正常流量
4.CPU Load高居不下
服务不可靠的可能原因:
1.RPC超时
2.异常比例升高
3.队列占满
4.线程池占满
微服务中偶尔会出现某个服务挂掉
如果该服务被拖垮导致自己不可用以后又会拖垮其他的服务,进而导致雪崩的情况
所以针对这几种微服务稳定性的场景,流量降级保证稳定性是非常重要的,为了解决这个问题,一般有以下几种措施
1.限流,把QPS限定到某个阈值
2.流量整形,流量是随机的不可预测的,很多时候我们需要把流量调整成想要的形状比如是缓慢增加而不是忽然增加
3.熔断降级,避免被其他服务拖垮
服务中一般分为consumer和provider:
在provider端应该对其进行限流保护,保证其不被激增的流量所打垮,为了保证provider的正常调用,我们可以
1.限流保护,过快的调用直接拒绝
2.授权保护,没授权的应用直接将拒绝
3.系统保护,load超出阈值停止服务
4.热点保护,增强版的限流保护
consumer端为了防止被不稳定的服务调用拖垮,当服务的调用超出了时间阈值或请求量的时候,自动熔断
Hystrix主打的是线程池隔离,优点是隔离的比较彻底,缺点是在服务调用比较多的时候,其会根据每一种服务调用都创建一个线程池,线程池又创建大量的线程,会有上下文切换的危害。ThreadLocal场景下会有问题,比如依赖进行ThreadLocal进行事物或某些标志位的传递
关于Sentinel先启动控制台,控制台启动以后在浏览器中访问sentinel的控制台
配置,接入sentinel
这时候调用接口
在浏览器可以看到调用结果,在控制台可以看到信息
使用控制台对该接口进行限流
可以发现当qps超过设置阈值时,熔断
下面介绍下gateway
相关介绍可以看下这篇帖子:
https://www.cnblogs.com/xuweiweiwoaini/p/13858898.html
在本地项目中配置相关信息
把demo开头的和httpbin开头的流量分别导入道不同的位置上去
调用一下demo接口
可以在foo-service-route中看到,访问几次之后就能在控制台上找到demo-gateway的应用了
在控制台中设置参数限流
边栏推荐
- [GNSS data processing] Helmert variance component estimation analysis and code implementation
- MySQL 三万字精华总结 + 面试100 问,吊打面试官绰绰有余(收藏系列
- 面试必备:聊聊分布式锁的多种实现!
- Record: I accidentally wrote a recursion next time
- 编辑距离(多源BFS)
- 《软件测试》习题答案:第一章
- [算法] 剑指offer2 golang 面试题2:二进制加法
- RTKLIB: demo5 b34f. 1 vs b33
- C code implementation of robust estimation in rtklib's pntpos function (standard single point positioning spp)
- [算法] 剑指offer2 golang 面试题12:左右两边子数组的和相等
猜你喜欢
[algorithm] sword finger offer2 golang interview question 1: integer division
[算法] 劍指offer2 golang 面試題2:二進制加法
[algorithm] sword finger offer2 golang interview question 9: subarray with product less than k
[untitled]
记录:初次cmd启动MySQL拒接访问之解决
[算法] 剑指offer2 golang 面试题4:只出现一次的数字
[算法] 剑指offer2 golang 面试题12:左右两边子数组的和相等
Wechat applet development experience
2022国赛Re1 baby_tree
[algorithme] swordfinger offer2 golang question d'entrevue 2: addition binaire
随机推荐
Edit distance (multi-source BFS)
面渣逆袭:Redis连环五十二问,三万字+八十图详解。
[untitled]
(core focus of software engineering review) Chapter V detailed design exercises
Affichage du changement de valeur du Buff de gain de l'interface graphique de défaillance
Fairygui bar subfamily (scroll bar, slider, progress bar)
【rtklib】在rtk下使用抗差自适应卡尔曼滤波初步实践
[Chongqing Guangdong education] reference materials for regional analysis and planning of Pingdingshan University
Error: sorting and subscript out of bounds
On March 15, the official version of go 1.18 was released to learn about the latest features and usage
[algorithm] sword finger offer2 golang interview question 13: sum of numbers of two-dimensional submatrix
Employment of cashier [differential constraint]
Introduction to the daily practice column of the Blue Bridge Cup
It has been solved by personal practice: MySQL row size too large (> 8126) Changing some columns to TEXT or BLOB or using ROW_ FORMAT
[algorithm] sword finger offer2 golang interview question 7: 3 numbers with 0 in the array
Itext 7 生成PDF总结
[算法] 剑指offer2 golang 面试题8:和大于或等于k的最短子数组
Prove the time complexity of heap sorting
Containers and Devops: container based Devops delivery pipeline
[algorithm] sword finger offer2 golang interview question 8: the shortest subarray with a sum greater than or equal to K