SpringCloud Alibaba 入坑(三)Sentinel入门

为热爱编程的你点赞!
学习SpringBoot实战课程 https://edu.csdn.net/course/detail/31433
学习SpringCloud入门课程 https://edu.csdn.net/course/detail/31451


目录

  • 前言
  • 服务雪崩
  • Sentinel是啥?
  • Sentinel VS Hystrix
  • 安装Sentinel
  • 使用Sentinel
  • 总结


前言

上一篇 SpringCloud Alibaba 入坑(二)Nacos 配置中心


上篇文章介绍了nacos作为配置注册中心,本文将介绍下组件Sentinel的用法。


服务雪崩

微服务架构中经常会出现多个服务级联调用的情况,如下图所示:A作为服务提供者,B作为服务消费者,B调用A,C又调用B,D又调用C,如果A出现问题,那么可能导致B调用失败,B出现问题又会导致C调用失败,这样问题不断向上延伸,导致整个系统不可用,也就是服务雪崩了。
导致服务雪崩原因有很多,比如:流量激增、缓存问题、硬件故障、程序bug、线程长时间等待等。
SpringCloud Alibaba 入坑(三)Sentinel入门_第1张图片

Sentinel是啥?

SpringCloud Alibaba 入坑(三)Sentinel入门_第2张图片

Sentinel翻译过来就是哨兵,从字面上理解就是国家如果出现了任何的状况,他会第一时间出现,把危险拦在外面。
阿里巴巴的Sentinel组件就是分布式系统的哨兵,它从流量控制、熔断降级、负载保护等多个方面对系统进行保护。

Sentinel的主要特性:
SpringCloud Alibaba 入坑(三)Sentinel入门_第3张图片

Sentinel VS Hystrix

在SpringCloud Netflix中有一个类似的组件:Hystrix 豪猪,下面我们把哨兵和豪猪进行对比:
SpringCloud Alibaba 入坑(三)Sentinel入门_第4张图片
可以看到Sentinel的功能更加完善,它的最大特点是有一套Web控制台界面,方便监控和配置各种限流规则,而且Hystrix早已停止更新了,显然Sentinel是它的最佳替代者。

安装Sentinel

到Sentinel官网下载jar包,这里使用的版本是1.8.0
https://github.com/alibaba/Sentinel/releases

SpringCloud Alibaba 入坑(三)Sentinel入门_第5张图片

运行Sentinel的前提是安装了Java环境,Windows系统中打开cmd命令行,切换到jar包所在目录,输入:

java -jar sentinel-dashboard-1.8.0.jar

就可以看到Sentinel的启动日志
SpringCloud Alibaba 入坑(三)Sentinel入门_第6张图片
在浏览器输入 http://localhost:8080 就可以看到控制台界面,账号密码默认都是sentinel

SpringCloud Alibaba 入坑(三)Sentinel入门_第7张图片
登录进去会发现:啥都没有

SpringCloud Alibaba 入坑(三)Sentinel入门_第8张图片

使用Sentinel

下面我们在之前的nacos案例基础上加入Sentinel,还没了解过nacos的,上面有链接哦。
1、给provider-service服务添加依赖


    org.springframework.cloud
    spring-cloud-starter-alibaba-sentinel

2、application.yml

server:
  port: 8888
spring:
  application:
    name: provider-service
  cloud:
    nacos:
      discovery:
        server-addr: 192.168.7.188:8848
    sentinel:
      transport:
        dashboard: 192.168.7.188:8080 # sentinel 控制台的地址
        port: 8719  # sentinel的端口
management:
  endpoints:
    web:
      exposure:
        include: '*'

3、添加测试的控制器

@RestController
public class HelloController {

    @GetMapping("/hello")
    public String hello(){
        return "hello sentinel!!";
    }
}

4、启动nacos服务,再启动sentinel控制台,然后启动provider-service服务
在nacos里面可以看到该服务
SpringCloud Alibaba 入坑(三)Sentinel入门_第9张图片
5、在浏览器上输入:http://localhost:8888/hello
在这里插入图片描述
然后我们会发现Sentinel的控制台,出来东西了

SpringCloud Alibaba 入坑(三)Sentinel入门_第10张图片
这就表示我们成功启动了Sentinel,并且用它监控了我们服务的接口调用情况。


总结

今天简单介绍了Sentinel这个哨兵的入门使用方法,当然更重要的是如何使用Sentinel来实现限流、熔断、降级等操作,这将在下篇文章中介绍,如果文章对你有帮助,点个赞吧:)

你可能感兴趣的:(分布式,分布式,java,spring,cloud,alibaba,spring)