微服务保护:Sentinel

home | Sentinelhttps://sentinelguard.io/zh-cn/

微服务保护的方案有很多,比如:

  • 请求限流

  • 线程隔离

  • 服务熔断

服务故障最重要原因,就是并发太高!解决了这个问题,就能避免大部分故障。当然,接口的并发不是一直很高,而是突发的。因此请求限流,就是限制或控制接口访问的并发流量,避免服务因流量激增而出现故障。

当一个业务接口响应时间长,而且并发高时,就可能耗尽服务器的线程资源,导致服务内的其它接口受到影响。所以我们必须把这种影响降低,或者缩减影响的范围。线程隔离正是解决这个问题的好办法。

线程隔离虽然避免了雪崩问题,但故障服务依然会拖慢(服务调用方)的接口响应速度。而且故障依然会导致查询功能出现故障,业务也变的不可用了。

这些方案或多或少都会导致服务的体验上略有下降,比如请求限流,降低了并发上限;线程隔离,降低了可用资源数量;服务熔断,降低了服务的完整度,部分服务变的不可用或弱可用。因此这些方案都属于服务降级的方案。但通过这些方案,服务的健壮性得到了提升,

Sentinel 的使用可以分为两个部分:

  • 核心库(Jar包):不依赖任何框架/库,能够运行于 Java 8 及以上的版本的运行时环境,同时对 Dubbo / Spring Cloud 等框架也有较好的支持。在项目中引入依赖即可实现服务限流、隔离、熔断等功能。

  • 控制台(Dashboard):Dashboard 主要负责管理推送规则、监控、管理机器信息等。

一、下载jar包

Releases · alibaba/Sentinelhttps://github.com/alibaba/Sentinel/releases二、运行jar包

将jar包放在任意非中文、不包含特殊字符的目录下,重命名为**sentinel-dashboard.jar**:

然后运行如下命令启动控制台:

java -Dserver.port=8090 -Dcsp.sentinel.dashboard.server=localhost:8090 -Dproject.name=sentinel-dashboard -jar sentinel-dashboard.jar

三、访问

访问http://localhost:8090http://localhost:8080页面,就可以看到sentinel的控制台了:

账号密码都是:sentinel

整合到微服务中:

依赖:

java 复制代码
<!--sentinel-->
<dependency>
    <groupId>com.alibaba.cloud</groupId> 
    <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
</dependency>

配置:

java 复制代码
spring:
  cloud:
    sentinel:
      transport:
        dashboard: localhost:8090
      http-method-specify: true # 开启请求方式前缀

启动服务sentinel就会自动监控服务

相关推荐
Volunteer Technology2 天前
sentinel基本操作
spring cloud·sentinel
程序员泠零澪回家种桔子2 天前
Sentinel核心能力解析:限流与集群方案
后端·架构·sentinel
团子的二进制世界4 天前
Sentinel-服务保护(限流、熔断降级)
java·开发语言·sentinel·异常处理
团子的二进制世界4 天前
Sentinel 的核心规则体系
sentinel·熔断·热点·流控
小马爱打代码5 天前
Sentinel:入门到实战详细教程
sentinel
小马爱打代码6 天前
Spring Boot:Sentinel 企业级熔断、降级与限流实战
spring boot·后端·sentinel
没有bug.的程序员6 天前
Spring Cloud Sentinel:熔断降级规则配置与分布式流量防线实战终极指南
java·分布式·后端·spring cloud·sentinel·熔断规则·分布式流量防线
u0104058369 天前
Java中的服务熔断机制:Hystrix与Sentinel的比较
java·hystrix·sentinel
what丶k9 天前
微服务稳定性守护者:Sentinel 全面使用指南(从入门到企业级落地)
微服务·架构·sentinel
鸽鸽程序猿9 天前
【JavaEE】【SpringCloud】 熔断和限流 Alibaba Sentinel
spring cloud·java-ee·sentinel