如何轻松应对偶发异常(3)

简介: 如何轻松应对偶发异常

如何轻松应对偶发异常


在回顾了一下 MSE 是如何做到全面消除变更态风险之后。我们来看一下 MSE 微服务治理在三月份新上线的这些功能,如何帮助大家轻松应对偶发异常。

我们做了大致的总结和归类,将偶发异常的情况分为了两部分:异常流量和不稳定服务依赖。

image.png

接下来我们将面向这两个大类下五个小类的场景,来阐述如何借助 MSE 微服务治理三月份发布的新功能去解决这些偶发异常的。


接口限流

首先我们看一下激增流量这一块。拿一个具体的场景来说,业务方精心准备了一个大促活动,活动非常火爆,在活动开始的一瞬间,远远超过系统承载预期的用户进来抢购秒杀,如果没有微服务治理能力,服务可能由于扛不住流量直接被打挂,甚至在重启的过程还不断被打挂。精心准备的活动由于系统宕机导致效果非常差,在遇到难得的业务爆发式增长机会时,却因为应用的宕机错失了爆发的机会。

在这个场景下,可以借助 MSE 的流控能力对关键接口配置流控规则保护应用整体的可用性。只让容量范围内的请求被处理,超出容量范围外的请求被拒绝,相当于这是一个安全气囊的作用。

image.png

如上图所示, /a 这个接口是我们应用的关键接口,我们识别到单机阈值是 200 后,配置上流控防护规则,使得这个关键接口最大的通过 QPS 是 200,超出阈值的流量会直接被拒绝,从而保护应用整体的可用性。


精准限流

接下来我们再看一下精准限流,拿一个具体的场景来说,由于在配置优惠活动的时候没有配置好最大次数,或者存在规则上的漏洞。在被黑产发现后不断地进行在刷单,业务损失严重。在这个场景下,我们可以借助 MSE 的精准限流能力实现防黑产刷单。

MSE 的精准限流可以在 API 的维度基础上,基于流量的特征值来进行限流,比如根据调用端的 IP,参数中的某一个参数的值,或者说 HTTP 请求里 header 的特征等。

image.png

如上图所示,当我们识别到黑产用户的特征之后,可以根据 header 里面 key 为 user-id 的值来进行精准的业务限流,这里配置的规则为每天只能通过一次,也就意味着黑产流量被识别到之后,一天内超出一次的调用都会被拒绝,这样就能有效地防止黑产刷单保护业务。


并发隔离

第三部分是并发隔离,拿一个具体的场景来说,假设我们的应用依赖了一个第三方的支付渠道,但是因为渠道本身的原因出现了大量的慢调用,进而导致了应用全部的线程池都被调用该支付渠道的调用占满了,没有线程去处理其他正常的业务流程。而且这个第三方的支付其实只是我们其中的一个支付渠道。我们其他的支付渠道都是正常的。

MSE 可以对应用作为客户端的流量进行并发隔离,限制同时调用这个第三方支付渠道的最大并发数,从而留下充足的资源来处理正常的业务流量。

image.png

如上图所示,我们配置了并发数阈值是 5,每个应用节点最多同时存在 5个并发去调用第三方支付服务,当调用数超过了 5 的时候,请求在发起前就会直接被拒绝。通过并发隔离,把不稳定的支付渠道隔离到有限的影响面,而不会挤占其他正常支付渠道的资源,这样来保障我们一个业务的稳定性。


SQL 防护

第四部分是 SQL 防护,拿一个具体的场景来说,应用更新后出现了慢 SQL 的语句,处理的时间比较长的,这个时候需要快速定位慢 SQL ,然后防止我们这个应用去被这个慢 SQL 拖垮了。或者在项目的初期可能没有对这个 SQL 的性能做一个很好的考量,然后随着业务的发展,业务量级的增加,然后导致线上遗留老 SQL 逐渐腐化,成为了一个慢 SQL。

MSE 的数据库治理功能,可以自动统计应用的 SQL语句,以及 SQL 的 QPS、平均耗时 和最大并发等数据,并针对于 SQL 进行一个防护。

image.png

如上图所示,在平均耗时中找到慢 SQL,点击右边的 SQL 防护按钮,通过配置并发隔离规则来进行保护应用不被慢 SQL 拖垮。


服务熔断

最后我们再来看一下服务熔断。拿一个具体的场景来说,在业务高峰期查询积分服务达到性能瓶颈,导致响应速度慢、报错增多。但是它并不是一个关键的服务,这时不能因为无法查询积分余额而导致整个流程都无法进行。正确的逻辑应该是积分余额暂时不显示,但是除此之外其他主流程都能正常完成。

MSE 的服务熔断功能,可以很好地解决上述的问题。MSE 支持通过慢调用的比例,或者错误数去衡量一个服务是否处于正常状态,当识别到服务已经不正常的时候就自动触发熔断。熔断后消费者不会再去调用出问题的服务了,而是直接返回 Mock 值。

image.png

如上图所示,配置当异常比例超过 80% 的时候自动触发熔断,不再去调用不正常的服务。一方面消费者不再去调用不正常的弱依赖服务,不会因为弱依赖的问题导致主流程不正常。另一方面,熔断也给了不稳定的下游一些喘息的时间,让它有机会去恢复。

我们最后再来总结一下 MSE 微服治理是如何助您轻松应对线上偶发异常的,针对我们刚才总结的这五类场景:

  1. 当遇到激增流量的时候,我们应该使用接口限流。
  2. 当我们遇到黑产刷单等问题的时候,我们应该使用精准限流。
  3. 当第三方服务不响应,占满线程池的时候,我们应该使用并发隔离。
  4. 当应用存在慢 SQL 的时候,我们应该使用 SQL 防护。
  5. 当应用的弱依赖出现异常,影响我们核心业务流程的时候,我们应该使用服务熔断。

通过这五个功能,MSE 微服务治理可以助您去轻松去应对上述场景的一些偶发异常,后续 MSE 也会持续不断地去探索和拓展更多场景,更全面地保障您应用的运行时的稳定性。


结语

MSE 微服务治理致力于帮用户低成本构建安全、稳定的微服务。由于篇幅原因,更多的功能就不在这里给大家详细介绍了,关于 MSE 更多的详情,读者可以通过查看 MSE 帮助文档的了解详情。

目录
相关文章
软件体系结构 - 系统工程【切克兰德方法】
软件体系结构 - 系统工程【切克兰德方法】
999 0
|
算法 安全 定位技术
最新V2.0社交交友系统源码-语聊交友运营级别成品源码-三端源码交付核心功能模块详解(附代码示例)
这是一款2026年合规交友平台解决方案,集成智能匹配、语聊直播、会员变现与分销体系,支持私有化部署,内置实名认证、AI内容审核等安全模块,助力企业合法高效运营。
184 0
最新V2.0社交交友系统源码-语聊交友运营级别成品源码-三端源码交付核心功能模块详解(附代码示例)
|
4月前
|
机器学习/深度学习 传感器 数据采集
告别死记硬背,这篇机器学习“黑话”指南让你秒变内行
本 glossary 以工业制造为隐喻,系统梳理机器学习全链路核心概念:从数据预处理(特征工程、归一化、降维等)、主流算法(SVM、CNN、Transformer等),到训练优化(损失函数、反向传播、正则化)、模型评估(混淆矩阵、F1、AUC)及工程部署(MLOps、边缘推理)。共52个术语,兼顾准确性与可理解性,助力快速掌握ML知识体系。(239字)
480 4
|
5月前
|
文字识别 Linux 数据安全/隐私保护
Python实战:用代码轻松搞定PDF页面方向调整
本文详解Python自动化修复PDF页面方向问题:针对扫描件倒置、混合横纵页等痛点,对比Spire.PDF(精准控制)与PyPDF2(轻量快捷)两大方案,提供单页/批量/智能旋转、加密PDF处理及元数据保留等实用技巧,助你高效完成PDF方向矫正。(239字)
389 2
|
人工智能 Java API
阿里云开源 AI 应用开发框架:Spring AI Alibaba
阿里云开源 Spring AI Alibaba,旨在帮助 Java 开发者快速构建 AI 应用,共同构建物理新世界。
4218 8
|
数据安全/隐私保护
金狮金盾点盾云鹏保宝加密视频去检测翻录录屏
通过独家技术特殊加载录屏工具,可规避加密视频播放器如金盾、金狮等的检测,确保录屏既清晰又隐形。使用步骤简便:首先正常播放加密视频,接着通过特殊方式打开录屏工具,最后即可顺利录制。详情及下载请访问 spjm.vip/sp/pz/wnlp.txt。主要功能包括:防止录制时出现黑屏,以及隐蔽启动录屏工具以避开检测。
1574 2
质数
【10月更文挑战第22天】质数。
881 67
|
存储 物联网 Python
使用 unicodedata 模块对字符串标准化
使用 unicodedata 模块对字符串标准化
538 1
|
调度 容器 Perl
Nvidia GPU如何在Kubernetes 里工作
# Nvidia GPU如何在Kubernetes 里工作 本文介绍Nvidia GPU设备如何在Kubernetes中管理调度。 整个工作流程分为以下两个方面: * 如何在容器中使用GPU * Kubernetes 如何调度GPU ### 如何在容器中使用GPU 想要在容器中的应用可以操作GPU, 需要实两个目标 1.
4475 0