SpringCloud Alibaba Sentinel(一)

Sentinel简介

官网

Github:https://github.com/alibaba/Sentinel

Sentinel:分布式系统的流量防卫兵,相当于Hystrix

Hystrix存在的问题

需要我们程序员自己手工搭建监控平台

没有一套web界面可以给我们进行更加细粒度化的配置,流量控制,速率控制,服务熔断,服务降级。

这个时候Sentinel运营而生

单独一个组件,可以独立出来

直接界面化的细粒度统一配置

约定 > 配置 >编码,都可以写在代码里,但是尽量使用注解和配置代替编码

是什么

随着微服务的流行,服务和服务之间的稳定性变得越来越重要。Sentinel 以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。

Sentinel 具有以下特征:

丰富的应用场景:Sentinel 承接了阿里巴巴近 10 年的双十一大促流量的核心场景,例如秒杀(即突发流量控制在系统容量可以承受的范围)、消息削峰填谷、集群流量控制、实时熔断下游不可用应用等。
完备的实时监控:Sentinel 同时提供实时的监控功能。您可以在控制台中看到接入应用的单台机器秒级数据,甚至 500 台以下规模的集群的汇总运行情况。
广泛的开源生态:Sentinel 提供开箱即用的与其它开源框架/库的整合模块,例如与 Spring Cloud、Dubbo、gRPC 的整合。您只需要引入相应的依赖并进行简单的配置即可快速地接入 Sentinel。
完善的 SPI 扩展点:Sentinel 提供简单易用、完善的 SPI 扩展接口。您可以通过实现扩展接口来快速地定制逻辑。例如定制规则管理、适配动态数据源等。

主要特征

在这里插入图片描述

生态圈

在这里插入图片描述

下载

Github:https://github.com/alibaba/Sentinel/releases
在这里插入图片描述

安装Sentinel控制台

sentinel组件由两部分组成,后台和前台8080

Sentinel分为两部分

核心库(Java客户端)不依赖任何框架/库,能够运行在所有Java运行时环境,同时对Dubbo、SpringCloud等框架也有较好的支持。

控制台(Dashboard)基于SpringBoot开发,打包后可以直接运行,不需要额外的Tomcat等应用容器

使用 java -jar 启动,同时Sentinel默认的端口号是8080,因此不能被占用

注意,下载时候,由于Github经常抽风,因此可以使用Gitee进行下,首先先去Gitee下载源码
在这里插入图片描述
然后执行mvn package 进行构建,本博客同级目录下了,已经有个已经下载好的,欢迎自取

初始化演示工程

启动Nacos8848成功

引入依赖

<!--SpringCloud ailibaba sentinel-datasource-nacos 后续做持久化用到-->

<dependency>

    <groupId>com.alibaba.csp</groupId>

    <artifactId>sentinel-datasource-nacos</artifactId>

</dependency>

<!--SpringCloud ailibaba sentinel -->

<dependency>

    <groupId>com.alibaba.cloud</groupId>

    <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>

</dependency>

修改YML

server:

  port: 8401



spring:

  application:

    name: cloudalibaba-sentinel-service

  cloud:

    nacos:

      discovery:

        server-addr: localhost:8848 #Nacos服务注册中心地址

    sentinel:

      transport:

        dashboard: localhost:8080 #配置Sentinel dashboard地址

        port: 8719

增加业务类


@RestController

@Slf4j

public class FlowLimitController

{

    @GetMapping("/testA")

    public String testA()

    {

        return "------testA";

    }



    @GetMapping("/testB")

    public String testB()

    {

        log.info(Thread.currentThread().getName()+"\t"+"...testB");

        return "------testB";

    }

}

启动8401微服务,查看Sentinel控制台

我们会发现Sentinel里面空空如也,什么也没有,这是因为Sentinel采用的懒加载

执行一下访问即可:http://localhost:8401/testA http://localhost:8401/testB

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring Cloud和Spring Cloud Alibaba都是基于Spring Framework的开源框架,用于构建分布式系统和微服务架构。它们都提供了一系列的组件和工具来简化微服务开发和管理。 Spring Cloud是一个由Pivotal团队维护的项目,它集成了Netflix开源的一些组件,如Eureka作为注册中心、Ribbon作为负载均衡器、Feign作为服务调用工具等。同时,Spring Cloud还提供了其他功能,如Config Server用于动态管理配置、Gateway用于构建API网关等。 而Spring Cloud Alibaba则是阿里巴巴开源的项目,它在Spring Cloud的基础上进行了扩展和定制,增加了一些阿里巴巴自己的组件和工具。比如,它使用Nacos作为注册中心和配置中心,使用Sentinel作为熔断降级工具。 总的来说,Spring Cloud和Spring Cloud Alibaba都是用于构建微服务架构的框架,它们的区别在于Spring Cloud集成了Netflix组件,而Spring Cloud Alibaba集成了阿里巴巴的一些组件。根据具体的需求和技术栈选择使用哪个框架可以更好地满足开发和管理微服务的需求。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [Spring Cloud Alibaba和Spring Cloud的区别](https://blog.csdn.net/weixin_43888891/article/details/126653270)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值