微服务服务容错与sentinel
1.服务容错的背景 1)系统依赖的某个服务发生延迟或者故障,数秒内导致所有应用资源(线程,队列等)被耗尽,造成所谓的雪崩效应 (Cascading Failure),导致整个系统拒绝对外提供服务。 2)系统遭受恶意爬虫袭击,在放大效应下没有对下游依赖服务做好限速处理,最终导致下游服务崩溃。 2.服务容错的解决方案 1)超时 通过超时来释放资源,这样就不容易被拖死,只要释放够快。 2)限流 通过评估来限制流量,防止微服务被拖死。 3)仓壁模式 资源有对立线程池,拥有自己拒绝策略。资源之间不相互影响。 4)断路器模式 监控错误率或者错误次数达到一定阈值,就跳闸,就认为依赖微服务不可用,监控加开关 3.sentinel的基本使用 Sentinel 分为两个部分: 核心库(Java 客户端)不依赖任何框架/库,能够运行于所有 Java 运行时环境,同时对 Dubbo / Spring Cloud 等框架也有较好的支持。 控制台(Dashboard)基于 Spring Boot 开发,打包后可以直接运行,不需要额外的 Tomcat 等应用容器。 如何使用? 首先下载jar包 然后在cmd中通过jar -jar sentinel…启动项目 输入localhost:8080访问项目,用户名和密码都是sentinel
在要使用Sentinel的微服务中添加下面的pom依赖即可 在yml文件中配置好sentinel的地址。sentinel下面为什么有一个port?原因是sentinel监控时会启动一个http server与dashboard进行通信 注意:微服务启动后sentinel并没有什么变化,原因是要想使用sentinel监控微服务,此微服务必须至少访问过一次。
上一篇:
IDEA上Java项目控制台中文乱码