微服务保护

本文详细介绍了如何使用Sentinel解决微服务中的雪崩问题,包括Sentinel的初识、限流规则、隔离和降级策略,以及授权规则。Sentinel提供超时处理、舱壁模式、熔断降级和流量控制等解决方案。文章通过实例展示了如何配置限流规则、线程隔离、熔断策略,以及如何实现Feign的Sentinel整合。同时,还涵盖了授权规则的设置和规则的持久化管理。
摘要由CSDN通过智能技术生成

目录

一、初识Sentinel

1.1 雪崩

1.2 微服务整合Sentinel

 二、限流规则

2.1 簇点链路

2.1.1流控模式

2.1.2 流控效果

 三、隔离和降级

3.1 Feign整合Sentinel

3.2 线程隔离 

3.3 熔断降级

3.3.1 熔断策略——慢调用

3.3.2 熔断策略-异常比例、异常数

四、授权规则

4.1 授权规则

4.2 自定义异常结果

4.3 规则持久化


一、初识Sentinel(哨兵)

1.1 雪崩

微服务调用链路中的某个服务故障,引起整个链路中的所有微服务都不可用,这就是雪崩

 解决雪崩问题的常见方式有四种:

  1. 超时处理:设定超时时间,请求超过一定时间没响应就返回错误信息,不会无休止等待
  2. 舱壁模式:限定每个业务能使用的线程数,避免耗尽tomcat的资源,也叫线程隔离。
  3. 熔断降级:断路器统计业务执行的异常比例,超出阈值则会熔断该业务,拦截访问该业务
  4. 流量控制:限制业务访问的QPS(每秒种处理的请求数量),避免服务因流量的突增而故障。

Sentinel

Hystrix

隔离策略

信号量隔离

线程池隔离/信号量隔离

熔断降级策略

基于慢调用比例或异常比例

基于失败比率

实时指标实现

滑动窗口

滑动窗口(基于 RxJava)

规则配置

支持多种数据源

支持多种数据源

扩展性

多个扩展点

插件的形式

基于注解的支持

支持

支持

限流

基于 QPS,支持基于调用关系的限流

有限的支持

流量整形

支持慢启动、匀速排队模式

不支持

系统自适应保护

支持

不支持

控制台

开箱即用,可配置规则、查看秒级监控、机器发现等

不完善

常见框架的适配

Servlet、Spring Cloud、Dubbo、gRPC 等

Servlet、Spring Cloud Netflix

 Sentinel官方网站:home | Sentinel

下载对应的jar包并允许,默认端口为8080

访问localhost:8080,默认的账户和密码都是sentinel,进入如下界面

如果要修改Sentinel的默认端口、账户、密码,可以通过下列配置:

配置项

默认值

说明

server.port

8080

服务端口

sentinel.dashboard.auth.username

sentine

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值