【微服务~原始真解】Spring Cloud —— 初识sentinel_spring cloud

🔎这里是【秒懂·云原生】,关注我学习云原生不迷路
👍如果对你有帮助,给博主一个免费的点赞以示鼓励
欢迎各位🔎点赞👍评论收藏⭐️

👀专栏介绍

【秒懂·云原生】 目前主要更新微服务,一起学习一起进步。

👀本期介绍

主要介绍Spring Cloud —— 初识sentinel

文章目录

  • ​​👀专栏介绍​​
  • ​​👀本期介绍​​
  • ​​1、Sentinel简介​​
  • ​​2、Hystrix和Sentinel对比​​
  • ​​3、安装sentinel控制台​​
  • ​​4、整合微服务​​
  • ​​引入依赖​​
  • ​​配置信息​​

1、Sentinel简介

Sentinel是阿里巴巴出品的一款流控组件,它以流量为切入点,在流量控制、断路、负载保护等多个领域开展工作,保障服务可靠性。

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

1、超时处理:设定超时时间,请求超过一定的时间没有响应就返回错误信息,不会无休止等待。

2、舱壁模式:限定每个业务能使用的线程数,避免耗尽整个tomcat资源,因此也叫线程隔离。

3、熔断降级:有断路器统计业务执行的异常比例,如果超出阈值则会熔断业务,拦截访问该业务的一切请求。

4、流量控制:限制业务访问的QPS,避免服务因流量的突增而故障。

【微服务~原始真解】Spring Cloud —— 初识sentinel_云原生_02

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

【微服务~原始真解】Spring Cloud —— 初识sentinel_流量控制_03

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监控信息

【微服务~原始真解】Spring Cloud —— 初识sentinel_流量控制_04