前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >限流&熔断的考量

限流&熔断的考量

作者头像
架构之家
发布于 2022-09-02 02:38:08
发布于 2022-09-02 02:38:08
4580
举报
文章被收录于专栏:架构之家架构之家

限流的原则,是尽量在流量源头限,并且是需要依据现有团队所掌握的技能来。

如上最左侧便是主要流量的来源入口,首先就要限制的地方就是slb节点的income流量

slb节点的流量特点是啥?加限流怎么加?限流限的是啥?

错了,此处是拦截,不是限流...

流量特点:

  • 几乎来自外部的流量都从这个入口过来,无论是带业务属性的还是不带业务属性的、ddos的、正常流量、爬虫等统统从这里来

需要拦截是啥(由于流量过了这个节点就是我们的应用系统了,因此最好是把非业务应用相关的流量挡住,限制住,让它有序进来,不要冲垮系统):

  • ddos攻击流量
  • 其他通用级的不安全流量:sql注入、xss注入等

有些许限流的:

  • 连接并发限制
  • 每ip请求限流控制
  • 爬虫流量

上述是slb节点,但是也有团队考虑到本身技能,以及代码git化存储的原则,会把某些配置往后面的nginx/kong移,因为slb的配置是UI界面化的,代码化存储比较不直接;

但是nginx/kong这种就相对容易多了,而且恢复时只要脚本到位,分分钟就恢复一套系统,很方便。

nginx节点的流量特点是啥?加限流怎么加?限流限的是啥?

到了这里,ddos这种攻击流量应该算是过滤掉了,常见的sql注入等攻击也过滤掉了;但是还存在爬虫流量(有时,这种流量是我们需要的,SEO推广等);也会包含高级攻击流量

因此,nginx节点,需要做的限流是(通用级别的限流):

  • 爬虫限流、并发控制、或者过滤、又或者重定向到蜜罐系统(专门给爬虫做的系统,和主业务系统隔离)
  • 每ip请求限流

spring cloud gateway节点的流量特点是啥?加限流怎么加?限流限的是啥?

到了这里,一般普通静态H5资源的访问已经没有了(已经重定向到其他nginx节点分流处理调了);gateway处理的都是动态编程语言需要处理的流量,这里指java

也就是说,到了这个节点,开始进入java系统领域,流量承受能力比nginx降了1个等级,需要做更多的限制。

需要做的:

  • 普通场景下的限流
  • 突发流量下的限流,如:秒杀等
  • CC攻击+验签的过滤(由于公私钥证书一般加在java节点上,因此此处放java系统范畴,而不是slb之前,或者nginx之前)
  • 可以在gateway 动态路由中分别配置各自的限流配置,以及上述自定义的CC+验签配置

隔离性:

  • 由于gateway流量会转发给后端一大堆微服务,假设由于哪个java微服务处理不过来hang住了,又不想影响其他后端为服务的转发,因此需要做隔离性
  • 可以:
    • hystrix
    • sentinel
    • guava

此处的限流和nginx的限流有啥区别?

  • nginx的阈值要大,因为nginx覆盖的范围不光是java领域,还有H5等其他范围
  • nginx的限流配置维度是通用的,但是spring cloud gateway就变化多了,可以通过自定义KeyResolver来决定所需要的维度来限流,如:用户id维度、ip维度、租户维度等,灵活度大了

java微服务节点的流量特点是啥?加限流怎么加?限流限的是啥?

到了这里,就是具体的微服务应用了,单个微服务所能承受的流量,做得好的话是能用jmeter测量出来的,可以通过这个值来参考设置

再然后,到了具体服务中了,其实限流的维度就更多了,当然需要考量下是否需要加很多限流,脆弱敏感的服务就加些,比如计费等,或者用其他技术做限流,如:queue,然后固定住consumer数来消费,稳住速率。

所采用技术和gateway一样,也可以自己实现,实现难度都还好。

流量大的系统,最好是用特定技术把income请求根据不同的维度划分好独立的线程池,不要相互影响;由本服务发起的到其他服务的请求调用,也需要单独的线程池来处理。总之目标就是都独立,不互相影响,即便其他服务慢了 ,

自己也不慢。

因此,熔断又出现了:

  • 当其他服务很慢,超时了,我方作为服务调用方不能被拖垮啊,这时,就断开吧,用个指定的协议响应暂且认定为服务不可用之类的,等后续再补偿回查。
  • 当然关键服务是不能这么处理的,只能是辅助服务。关键服务就必须要jmeter压侧提升性能。
  • 依赖:
    • 核心服务的梳理
    • 辅助服务熔断的返回值+应对方式
    • 核心服务的压侧

出处:https://www.cnblogs.com/aarond/p/ratelimiter.html

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-10-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 架构之家 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
高并发场景下如何保证系统稳定性
导语 微服务产品团队为了广大开发者朋友们可以更好的使用腾讯云微服务产品,将持续为大家提供微服务上云快速入门的指引性文档,内容通俗易懂易上手,本篇为本系列的第二篇,为开发者朋友们详解高并发场景下限流的解决方案,欢迎大家收看。 作者简介 刘远 腾讯云泛互联网首席解决方案架构师 本篇文章将从以下四个方面为大家详解高并发场景限流解决方案: 秒杀场景架构概述 限流实现原理及方案选型 限流配置实践 云书城沙盒环境演示 秒杀场景架构概述 场景特点 在电商行业里,商家经常会做商品促销的活动,来进行品牌推广或
腾讯云中间件团队
2022/11/22
1.5K0
高并发场景下如何保证系统稳定性
SpringCloud05 Gateway--限流、熔断
4 通过浏览器访问localhost:8080 进入控制台 ( 默认用户名密码是 sentinel/sentinel )
天蝎座的程序媛
2023/10/17
4480
SpringCloud05 Gateway--限流、熔断
一文带你 API 网关从入门到放弃
来源:http://github.com/aCoder2013/blog/issues/35
芋道源码
2019/07/22
1.7K0
一文带你 API 网关从入门到放弃
微服务架构实施原理
作者:风中程序猿,来自:cnblogs.com/fangfuhai 1 题记 基于微服务架构和Docker容器技术的PaaS云平台建设目标是给我们的开发人员提供一套服务快速开发、部署、运维管理、持续开发、持续集成的流程。 平台提供基础设施、中间件、数据服务、云服务器等资源,开发人员只需要开发业务代码并提交到平台代码库,做一些必要的配置,系统会自动构建、部署,实现应用的敏捷开发、快速迭代。 在系统架构上,PaaS云平台主要分为微服务架构、Docker容器技术、DveOps三部分,这篇文章重点介绍微服务架构的实
架构师小秘圈
2018/06/04
1.6K0
Sentinel 的熔断和限流
在分布式系统里,服务之间牵一发而动全身,一个接口雪崩,可能带崩整个应用链路。要想系统抗住流量洪峰,顶住突发异常,就得在稳定性上下功夫。今天我就来说说稳定性保障里的老将——Sentinel,看看它是怎么凭借限流熔断,在服务治理的江湖里占得一席之地。
FunTester
2025/04/22
2340
Sentinel 的熔断和限流
玩转Service Mesh微服务熔断、限流骚操作
在微服务架构中,随着服务调用链路变长,为了防止出现级联雪崩,在微服务治理体系中,熔断、限流作为服务自我保护的重要机制,是确保微服务架构稳定运行的关键手段之一。
用户5927304
2021/06/29
1.7K0
spring cloud gateway网关使用JMeter进行限流测试与熔断
限流就是限制流量,因为服务器能处理的请求数有限,如果请求量特别大,我们需要做限流(要么就让请求等待,要么就把请求给扔了), 限流可以保障我们的 API 服务对所有用户的可用性,也可以防止网络攻击。在高并发的应用中,限流是一个绕不开的话题。
用户10196776
2023/10/17
6390
spring cloud gateway网关使用JMeter进行限流测试与熔断
微服务为什么要用到服务网关?
服务网关为客户与服务系统之间的交互提供了统一的接口,也是管理请求和响应的中心点,选择一个适合的服务网关,可以有效地简化开发并提高系统的运维与管理效率。
架构精进之路
2024/11/23
1810
微服务为什么要用到服务网关?
微服务的终极杀器SpringCloudAlibaba组件精讲
    In short, the microservice architectural style is an approach to developing a single application as a suite of small services, each running in its own process and communicating with lightweight mechanisms, often an HTTP resource API. These services are built around business capabilities and independently deployable by fully automated deployment machinery. There is a bare minimum of centralized management of these services, which may be written in different programming languages and use different data storage technologies. -----[摘自官网]    简而言之,微服务架构风格是一种将单个应用程序开发为“一套小型服务”的方法,每个服务“运行在自己的进程中”,并通过轻量级机制(通常是HTTP资源API)进行通信。这些服务“围绕业务功能构建”,并通过全自动部署机制“独立部署”。“这些服务只有最低限度的集中管理”,可能是用不同的编程语言编写的,并使用不同的数据存储技术。
上分如喝水
2021/08/16
1.7K0
微服务的终极杀器SpringCloudAlibaba组件精讲
使用Sentinel进行服务调用的熔断和限流管理(SpringCloud2023实战)
Sentinel 是面向分布式、多语言异构化服务架构的流量治理组件,主要以流量为切入点,从流量路由、流量控制、流量整形、熔断降级、系统自适应过载保护、热点流量防护等多个维度来帮助开发者保障微服务的稳定性。
codetrend
2024/06/21
5510
网关神器Kong(一):介绍
当你看到这只大猩猩的时候,是不是感觉优点萌萌的。哈哈,这就是我们这篇文章要讲解的一个开源项目 – Kong( 云原生架构下的分布式API 网关 )。
拿我格子衫来
2022/01/24
8.4K0
网关神器Kong(一):介绍
限流措施
一般而言,正常的流量越多越好,比如用户快速增长、热点事件带来的蜂拥的人流。但在实际的网络流量中,除正常的流量外,还有很多非正常的流量,比如网络攻击、恶意爬虫。所以在高并发的应用中,需要通过限流来保障服务对所有用户的可用性。限流和缓存、降级一样,也是保护高并发系统的利器。
星哥玩云
2022/09/15
7830
原创好文!亿级流量网关设计思路
本文准备围绕七个点来讲网关,分别是网关的基本概念、网关设计思路、网关设计重点、流量网关、业务网关、常见网关对比,对基础概念熟悉的朋友可以根据目录查看自己感兴趣的部分。
cxuan
2021/03/12
2K0
想进入互联网公司,怎能不知道互联网的技术架构!
本文探讨了互联网公司的技术架构,涉及 DNS、负载均衡、长连接、API 网关、PUSH 推送、微服务、分布式事务以及相关支撑的基础服务。主要是为了学习,希望可以给大家一个参考。
Bug开发工程师
2020/02/24
8630
想进入互联网公司,怎能不知道互联网的技术架构!
spring cloud gateway 之限流篇
在高并发的系统中,往往需要在系统中做限流,一方面是为了防止大量的请求使服务器过载,导致服务不可用,另一方面是为了防止网络攻击。
方志朋
2019/06/21
1.8K0
spring cloud gateway 之限流篇
这样讲API网关,你应该能明白了吧!
为了提高系统的性能和可靠性,将应用服务进行拆分微服务化。作为系统入口的 API 网关也逐渐成为了标配。
macrozheng
2019/11/07
1.3K0
这样讲API网关,你应该能明白了吧!
Sentinel入门到实操 (限流熔断降级)
Sentinel是阿里巴巴开源的一款微服务流量控制组件。官网地址:https://sentinelguard.io/zh-cn/index.html
不吃紫菜
2023/03/08
1.9K1
Sentinel入门到实操 (限流熔断降级)
互联网公司理想架构探讨
本文探讨了互联网公司的技术架构,涉及DNS、负载均衡、长连接、API网关、PUSH推送、微服务、分布式事务以及相关支撑的基础服务。主要是为了学习,希望可以给大家一个参考。
架构之家
2022/07/12
8140
互联网公司理想架构探讨
微服务中网关(API Gateway)的技术选型
用 Spring Cloud 微服务实战中,大家都知道用 Zuul 作为智能网关。API 网关(API Gateway)主要负责服务请求路由、组合及协议转换。下面是大家的总结:
天涯泪小武
2019/06/26
7.6K0
其实,对于微服务网关的主要功能和技术选型,你还需要深入理解下
微服务网关作为微服务后端服务的统一入口(Entry Point),它可以统筹管理后端服务,主要分为数据平面(Data Plane)和控制平面(Control Plane)。
愿天堂没有BUG
2022/10/28
9950
其实,对于微服务网关的主要功能和技术选型,你还需要深入理解下
相关推荐
高并发场景下如何保证系统稳定性
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档