小麦带你学服务治理八

简介: 跟着小麦不迷路

## 服务限流降级熔断


先来讲讲微服务中限流/熔断的目的是什么,微服务后,系统分布式部署,系统之间通过rpc框架通信,整个系统发生故障的概率随着系统规模的增长而增长,一个小的故障经过链路的传递放大,有可能会造成更大的故障。


限流跟高可用的关系是什么,假定我们的系统最多只能承受500个人的并发访问,但整个时候突然增加到1000个人进来,一下子就把整个系统给压垮了,本来还有500个人能享受到我们系统的服务,突然间变成了所有人都无法得到服务,与其让1000人都不法得到服务,不如就让500个人得到服务,拒绝掉另外500个人。限流是对访问的隔离,是保证了部门系统承受范围内用户的可用性。


熔断跟高可用的关系是什么,上面说了微服务是一个错综复杂的调用链关系,假设 模块A 调用 模块B , 模块B 又调用了 模块C , 模块C 调用了 模块D,这个时候,模块D 出了问题出现严重的时延,这个时候,整个调用链就会被 模块D 给拖垮,A 等B,B等C,C等D,而且A B C D的资源被锁死得不到释放,如果流量大的话还容易引起雪崩。熔断,主动丢弃 模块D 的调用,并在功能上作出一些降级才能保证到我们系统的健壮性。 熔断是对模块的隔离,是保证了最大功能的可用性。




## 服务治理


### 服务模块划分


服务模块与服务模块之间有着千丝万缕的关系,但服务模块在业务中各有权重,例如订单模块可能是一家电商公司的重中之重,如果出问题将会直接影响整个公司的营收,而一个后台的查询服务模块可能也重要,但它的重要等级绝对是没有像订单这么重要。所以,在做服务治理时,必须明确各个服务模块的重要等级,这样才能更好的做好监控,分配好资源。这个在各个公司有各个公司的一个标准,例如在电商公司,确定服务的级别可能会更加倾向对用用户请求数和营收相关的作为指标。


| 服务级别 | 服务模块                                               |

| -------- | ------------------------------------------------------ |

| 一级服务 | 支付系统 订单服务 商品服务 用户服务 发布系统 ...       |

| 二级服务 | 消息服务 权限系统 CRM系统 积分系统 BI系统 评论系统 ... |

| 三级服务 | 后台日志系统                                           |


可能真正的划分要比这个更为复杂,必须根据具体业务去定,这个可以从平时服务模块的访问量和流量去预估,往往更重要的模块也会提供更多的资源,所以不仅要对技术架构了如指掌,还要对公司各种业务形态了然于心才可以。


服务分级不仅仅在故障界定起到重要主要,而且决定了服务监控的力度,服务监控在高可用中起到了一个保障的作用,它不仅可以保留服务奔溃的现场以等待日后复盘,更重要的是它可以起到一个先知,先行判断的角色,很多时候可以预先判断危险,防范于未然。

相关文章
|
SQL 缓存 监控
|
存储 移动开发 运维
|
域名解析 运维 自然语言处理
|
缓存 运维 监控
|
消息中间件 NoSQL 关系型数据库
|
缓存 搜索推荐 前端开发
小麦带你学服务治理六
跟着麦弟,吃香喝辣
|
存储 安全 NoSQL
|
存储 安全 中间件
|
存储 NoSQL 关系型数据库

热门文章

最新文章