微服务架构:基于sentinel的限流、降级、监控

本文介绍了阿里巴巴的Sentinel组件在微服务架构中的应用,包括如何通过Sentinel进行限流、降级的静态和动态配置,并详细阐述了Sentinel监控功能的使用,以确保系统的稳定性和高可用性。通过Sentinel,开发者可以有效地应对大流量场景,防止系统雪崩。此外,文中还提供了相关Demo代码和参考资料。
摘要由CSDN通过智能技术生成

        双11、双12、618秒杀、春晚抢红包等大流量高并发场景,我们再熟悉不过了。在高并发、高可用性后端系统架构设计时,通常要通过限流、降级等措施保障系统的稳定性。在Spring cloud微服务技术选型时,我们可以采用第三方开源架构有Hystrix、Resilience4jSentinel [1]。本文将介绍阿里巴巴Sentinel组件的使用。

       Sentinel 是面向云原生微服务架构的高可用流量防护组件,主要以流量为切入点,从限流、流量整形、熔断降级、系统负载保护、热点防护等多个维度来帮助开发者提升微服务的稳定性,避免系统出现雪崩问题,Sentinel 具有以下特征[2]:

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

       本文将按以下提纲给大家讲解Sentinel限流、降级和监控的实现。

图1 本文大纲图

1.准备工

1.1 下载sentinel-dashboard.jar

       请到git下载sentinel-dashboard.jar:jar包下载

图 1.1 下载sentinel-dashboard.jar

1.2. 启动sentinel

在终端输入:

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

 其中: -Dserver.port=8080 用于指定 Sentinel 控制台端口为 8080

成功启动sentinel 之后,会在终端输出以下日志信息:

图 1.2 sentinel启动成功启动截图

2. Sentinel限流、降级(静态配置)

       Sentinel提供丰富的功能,请见本文第5小节的内容介绍。在本节中,博主将介绍限流、降级的使用。其用法挺简单的,定义好了配置资源,使用即可。定义配置资源,有两种方式:抛出异常的方式定义资源、通过注解定义资源。由于注解定义资源更加灵活、使用更加方便,所以本节介绍注解方式的实现,只需要四步操作即可。

2.1引入sentinel注解依赖

implementation "com.alibaba.csp:sentinel-annotation-aspectj:${sentinel_version}"

2.2 定义SentinelAspectConfiguration

package com.rzl.spring.sentinel.configuration;


import com.alibaba.csp.sentinel.annotation.aspectj.SentinelResourceAspect;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class SentinelAspectConfiguration {
    @Bean
    public SentinelResourceAspect sentinelResourceAspect() {
        return new SentinelResourceAspect();
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值