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

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
注册配置 MSE Nacos/ZooKeeper,118元/月
云原生网关 MSE Higress,422元/月
简介: 如何轻松应对偶发异常

image.png

本文将通过介绍 MSE 微服务治理在三月的最新功能来告诉您答案。文章主要分为三部分,首先是 MSE 微服务治理的简介,然后是 MSE 全面消除变更态风险的回顾 ,最后是如何借助 MSE 微服务治理轻松应对线上偶发异常。


MSE 微服务治理简介

首先看一下微服架构的总览,相信读者朋友们对微服务都不陌生。在 JAVA 中比较主流的微服务框架就是 Dubbo 和 Spring Cloud,同时现在也有很多公司采用 Go、Rust 这些语言去构建自己的微服务。下图中浅绿色的这一部分都是纯开源的内容,除了微服务框架本身外,还包含了服务注册发现、服务配置中心、负载均衡等一系列的组件。

image.png

大家也发现,在微服务实施的过程中,随着微服务的增多、调用链路的复杂化,出问题和故障的可能性都在增加,问题定位的难度也成倍上升。比如说在可观测领域,需要使用到应用监控、链路追踪、日志管理等功能,才能放心地将应用部署到线上,以免出现问题无法定位。

更进一步,微服务本身更需要引入微服务治理。在开发态,需要通过服务 mock、服务测试、服务元数据等治理功能去保证微服务的快速迭代;在变更态,需要借助无损上下线和全链路灰度功能去保证发布时的稳定性,以及业务的连续性;在运行态,微服务可能遇到各式各样的偶发异常,需要借助治理功能去实现流量的自愈,保证我们的业务稳定、流畅地运行。很难想象一个线上的微服务应用没有治理是个什么场景,可以说是治理、不生产。

随着使用微服务架构的公司越来越多,大家也都意识到微服务治理非常重要,但是在实施微服务治理的过程中,大家还是遇到了比较多的痛点和难点。我们总结了一下,企业在实施微服务的过程中遇到的三类问题,分别是稳定、成本和安全。

1. 首先是稳定的问题

  1. 微服务在发布的过程中特别容易出现问题,每次发布都得熬夜以避开业务高峰期,而且还是免不了出现业务中断。
  2. 当遇到难得的业务爆发式增长时,应用因为无法承载流量高峰导致整体宕机,错失了业务爆发的机会。
  3. 在出现一些偶发异常的时候,应用没有完善的防护和治愈手段,可能会因为偶发的小异常,不断的滚雪球,最终去拖垮我们整个集群和整个服务。
  4. 遇到偶发问题的无法准确定位和彻底解决,只能重启方式规避,从而使得我们微服务的隐患越积越多,风险越来越大。

2. 第二是成本的问题

  1. 微服务治理功能在开源没有完善的解决方案,这个时候可能是需要去招聘大量精通微服务的人才,才能自建一套微服务治理体系,但是也无法覆盖完整的治理场景。这会使得人力成本非常高。
  2. 引入了微服务之后,基本都会有一些敏捷开发、快速迭代的诉求。在这个过程中,需要维护多套环境以维持一个并行开发迭代的需求,这会使得机器成本非常高。
  3. 传统的开发模式,当需要引入一个治理功能升级的时候,需要先升级基础组件,再对所有的应用进行代码改造,依次发布才能完成升级,改造的周期长、风险大。这会使得时间成本非常高。

3. 最后是安全的问题

  1. 经常会有一些开源的框架的安全漏洞被暴露出来,这个时候需要对依赖进行升级以修复 Bug,走一次完整的发布才能实现,成本高,时效性差。
  2. 零信任安全的解决方案正在被越来越多的公司采用,去保障整体的业务安全。不仅是在流量入口层对业务进行安全的保障,在应用间的内部调用也需要有完整的鉴权和保障机制。

那么 MSE微服务治理是怎么去解决这三个问题的?

MSE 的微服务治理基于开源的 OpenSergo 标准实现了无侵入的微服务治理。对于使用者来说升级成本是零,业务是完全无侵入感知的。

目前已经可以做到是五分钟接入,半小时内就学会完整的使用,保障微服务应用在变更态和运行时的稳定性。因为 OpenSergo 是全面开源标准,不会有任何的厂商绑定的问题。

image.png

从上图中可以看出,微服务应用可以通过 Java Agent 或 Sidecar 的方式接入MSE 微服务治理。在接入治理后,可以通过 MSE 微服引擎的控制面配置治理规则的配置。应用收到规则之后会实时生效,及时地保护应用。

相关实践学习
基于MSE实现微服务的全链路灰度
通过本场景的实验操作,您将了解并实现在线业务的微服务全链路灰度能力。
目录
相关文章
|
19天前
|
存储 安全 Java
如何避免`ArrayStoreException`异常?
`ArrayStoreException`是在Java中尝试将错误类型的对象存储到泛型数组时抛出的异常。要避免此异常,需确保向数组添加的对象类型与数组声明的类型一致,使用泛型和类型检查,以及在运行时进行类型安全的转换和验证。
|
3月前
|
安全 测试技术 数据库连接
如何避免 C# 中的异常
【8月更文挑战第27天】
48 2
|
3月前
|
机器学习/深度学习 运维 监控
|
5月前
|
存储 缓存 NoSQL
应对危机如何处理缓存击穿风险
【6月更文挑战第9天】本文介绍如何应对缓存穿透,这可以通过限制IP访问次数、预热缓存、设置空值以及使用布隆过滤器来过滤非法请求。布隆过滤器占用空间小,有误判率但速度快,适用于广告投放、内容推荐和数据库查询等场景。其优点包括低时间复杂度、并行运算和节省空间,但存在误判、无法存储元素及删除操作的局限性。
58 4
应对危机如何处理缓存击穿风险
|
6月前
|
消息中间件 监控 Java
接口请求重试策略:保障稳定性的必杀技
接口请求重试策略:保障稳定性的必杀技
317 0
|
4月前
|
监控
监控治理问题之想规范化异常抛出和日志使用以降低CDO报警噪音,如何解决
监控治理问题之想规范化异常抛出和日志使用以降低CDO报警噪音,如何解决
|
6月前
|
Java
异常处理,保障程序稳健
异常处理,保障程序稳健
|
6月前
|
搜索推荐 大数据
年底突发舆情风险的排查与分析的方法措施
在特殊时期如年底,舆情风险更加显著。因此,对于政企单位来说,如何进行年底突发舆情风险的排查与分析是其需要关注的重要问题。接下来,本文就具体来为各位说说关于年底突发舆情风险的排查与分析怎么做好?
63 0
|
SQL 安全 Java
如何轻松应对偶发异常(3)
如何轻松应对偶发异常
50 0
如何轻松应对偶发异常(3)
|
消息中间件 Kubernetes 安全
如何轻松应对偶发异常(2)
如何轻松应对偶发异常
53 0
如何轻松应对偶发异常(2)
下一篇
无影云桌面