Spring Cloud Alibaba之 Sentinel
推荐阅读:重磅来袭!微服务的里程碑 , SpringCloudAlibaba电子版教程已问世
Sentinel 介绍随着微服务的流行 , 服务和服务之间的稳定性变得越来越重要 。Sentinel 以流量为切入点 , 从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性 。
Sentinel 具有以下特征:
- 丰富的应用场景:Sentinel 承接了阿里巴巴近 10 年的双十一大促流量的核心场景 , 例如秒杀(即突发流量控制在系统容量可以承受的范围)、消息削峰填谷、实时熔断下游不可用应用等 。
- 完备的实时监控:Sentinel 同时提供实时的监控功能 。 您可以在控制台中看到接入应用的单台机器秒级数据 , 甚至 500 台以下规模的集群的汇总运行情况 。
- 广泛的开源生态:Sentinel 提供开箱即用的与其它开源框架/库的整合模块 , 例如与 Spring Cloud、Dubbo、gRPC 的整合 。 您只需要引入相应的依赖并进行简单的配置即可快速地接入 Sentinel 。
- 完善的 SPI 扩展点:Sentinel 提供简单易用、完善的 SPI 扩展点 。 您可以通过实现扩展点 , 快速的定制逻辑 。 例如定制规则管理、适配数据源等 。
[source,yaml]com.alibaba.cloud spring-cloud-starter-alibaba-sentinel
下面这个例子就是一个最简单的使用 Sentinel 的例子:@SpringBootApplicationpublic class Application {public static void main(String[] args) {SpringApplication.run(ServiceApplication.class, args);}}@RestControllerpublic class TestController {@GetMapping(value = "http://kandian.youth.cn/hello")@SentinelResource("hello")public String hello() {return "Hello Sentinel";}}
@SentinelResource 注解用来标识资源是否被限流、降级 。 上述例子上该注解的属性 'hello' 表示资源名 。@SentinelResource 还提供了其它额外的属性如 blockHandler , blockHandlerClass , fallback 用于表示限流或降级的操作 , 更多内容可以参考 Sentinel注解支持 。
以上例子都是在 WebServlet 环境下使用的 , Sentinel 目前已经支持 WebFlux , 需要配合 spring-boot-starter-webflux 依赖触发 sentinel-starter 中 WebFlux 相关的自动化配置 。
@SpringBootApplicationpublic class Application {public static void main(String[] args) {SpringApplication.run(ServiceApplication.class, args);}}@RestControllerpublic class TestController {@GetMapping("/mono")@SentinelResource("hello")public Mono mono() { return Mono.just("simple string").transform(new SentinelReactorTransformer<>("otherResourceName"));}}
Sentinel 控制台Sentinel 控制台提供一个轻量级的控制台 , 它提供机器发现、单机资源实时监控、集群资源汇总 , 以及规则管理的功能 。 您只需要对应用进行简单的配置 , 就可以使用这些功能 。注意: 集群资源汇总仅支持 500 台以下的应用集群 , 有大概 1 - 2 秒的延时 。
文章插图
Figure 3. Sentinel Dashboard
开启该功能需要3个步骤:
获取控制台您可以从 release 页面 下载最新版本的控制台 jar 包 。
您也可以从最新版本的源码自行构建 Sentinel 控制台:
- 下载 控制台 工程
- 使用以下命令将代码打包成一个 fat jar: mvn clean package
推荐阅读
- Cloud PC服务曝光:将Windows 10桌面挪到云端
- 基于Spring+Angular9+MySQL开发平台
- 苹果终于修复 iCloud 登录激活问题
- 苹果:影响新设备设置的“iCloud账号与登录”故障已解决
- 百度|百度CTO王海峰:智能云AI cloud活跃客户数增长65%
- 别不拿GateWay当回事,SpringCloud告诉你错了
- 华为云Cloud for Good温暖上海,原来上海的智慧是这样的
- web 安全之 Spring Security 入门教程
- Spring Application实例化流程和构造方法参数
- 百度CTO王海峰:AI Cloud活跃客户增65%,昆仑1芯片量产约两万片