【微服务~原始真解】Spring Cloud —— 初识sentinel
【秒懂·云原生】目前主要更新微服务,一起学习一起进步。主要介绍Spring Cloud —— 初识sentinel
🔎这里是【秒懂·云原生】,关注我学习云原生不迷路
👍如果对你有帮助,给博主一个免费的点赞以示鼓励
欢迎各位🔎点赞👍评论收藏⭐️
👀专栏介绍
【秒懂·云原生】 目前主要更新微服务,一起学习一起进步。
👀本期介绍
主要介绍Spring Cloud —— 初识sentinel
1、Sentinel简介
Sentinel是阿里巴巴出品的一款流控组件,它以流量为切入点,在流量控制、断路、负载保护等多个领域开展工作,保障服务可靠性。
解决雪崩问题的常见方式:
1、超时处理:设定超时时间,请求超过一定的时间没有响应就返回错误信息,不会无休止等待。
2、舱壁模式:限定每个业务能使用的线程数,避免耗尽整个tomcat资源,因此也叫线程隔离。
3、熔断降级:有断路器统计业务执行的异常比例,如果超出阈值则会熔断业务,拦截访问该业务的一切请求。
4、流量控制:限制业务访问的QPS,避免服务因流量的突增而故障。
2、Hystrix和Sentinel对比
Sentinel 以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。
Sentinel 具有以下特征:
- 丰富的应用场景:Sentinel 承接了阿里巴巴近 10年的双十一大促流量的核心场景,例如秒杀(即突发流量控制在系统容量可以承受的范围)、消息削峰填谷、集群流量控制、实时熔断下游不可用应用等。
- 完备的实时监控:Sentinel 同时提供实时的监控功能。您可以在控制台中看到接入应用的单台机器秒级数据,甚至 500台以下规模的集群的汇总运行情况。
- 广泛的开源生态:Sentinel 提供开箱即用的与其它开源框架/库的整合模块,例如与 Spring Cloud、Apache
Dubbo、gRPC、Quarkus 的整合。您只需要引入相应的依赖并进行简单的配置即可快速地接入 Sentinel。同时Sentinel 提供 Java/Go/C++ 等多语言的原生实现。 - 完善的 SPI 扩展机制:Sentinel 提供简单易用、完善的 SPI扩展接口。您可以通过实现扩展接口来快速地定制逻辑。例如定制规则管理、适配动态数据源等。
Hystrix主要功能如下:
- 保护系统在访问其他服务出现延迟、故障
- 在分布式环境下防止级联故障
- 快速失败和快速恢复
- failback以及优雅降级
- 提供近实时监控
Hystrix主要以隔离和熔断为容错机制,超时或被熔断的请求将快速失败,能够failback以及降级
Sentinel则主要在多样化的流量控制、熔断降级、系统负载保护等。
3、安装sentinel控制台
安装教程
下载地址: https://github.com/alibaba/Sentinel/releases
启动jar包: java -jar sentinel-dashboard-1.8.5.jar
指定端口: java -jar sentinel-dashboard-1.8.5.jar -Dserver.port=8090
访问 localhost:8080 默认账号密码都是:sentinel
4、整合微服务
引入依赖
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
</dependency>
配置信息
spring:
application:
name: mall-coupon
cloud:
sentinel:
transport:
dashboard: localhost:8080
此时访问该项目任意端点(接口),可以看到sentinel监控信息
更多推荐
所有评论(0)