欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

SpringCloud Alibaba 入坑(三)Sentinel入门

程序员文章站 2021-11-23 10:49:07
目录前言服务雪崩Sentinel是啥?Sentinel VS Hystrix安装Sentinel使用Sentinel总结前言上一篇 SpringCloud Alibaba 入坑(二)Nacos 配置中心上篇文章介绍了nacos作为配置注册中心,本文将介绍下组件Sentinel的用法。服务雪崩微服务架构中经常会出现多个服务级联调用的情况,如下图所示:A作为服务提供者,B作为服务消费者,B调用A,C又调用B,D又调用C,如果A出现问题,那么可能导致B调用失败,B出现问题又会导致C调用失....


前言

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


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


服务雪崩

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

Sentinel是啥?

SpringCloud Alibaba 入坑(三)Sentinel入门

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

Sentinel的主要特性:
SpringCloud Alibaba 入坑(三)Sentinel入门

Sentinel VS Hystrix

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

安装Sentinel

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

SpringCloud Alibaba 入坑(三)Sentinel入门

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

java -jar sentinel-dashboard-1.8.0.jar

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

SpringCloud Alibaba 入坑(三)Sentinel入门
登录进去会发现:啥都没有

SpringCloud Alibaba 入坑(三)Sentinel入门

使用Sentinel

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

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
</dependency>

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入门
5、在浏览器上输入:http://localhost:8888/hello
SpringCloud Alibaba 入坑(三)Sentinel入门
然后我们会发现Sentinel的控制台,出来东西了

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


总结

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

本文地址:https://blog.csdn.net/u013343114/article/details/110521642