Alibaba Sentinel 连载专栏
文章平均质量分 72
Alibaba Sentinel 是面向云原生微服务的流量控制,熔断降级组件,监控保护你的微服务,类似于Netflix Hystrix,但比之更强大
91猿说编程
从业15年,精通Java开发,微服务,网络,分布式高并发等技术。
展开
-
15. Alibaba Sentinel 持久化限流规则
背景概述 从之前学习得到的结果来看,每次重启应用后,在Sentinel中的限流配置都会丢失, 需要重新配置,这无疑是比较麻烦的,在生产环境中也是不可忍受的。 所以我们需要将配置存下来,保证应用重启后配置还在,而且能生效。 Sentinel提供多种不同的数据源来持久化规则配置,例如:file,redis、nacos、zk等 由于我们使用Sentinel时一般都会搭配Nacos来使用,所以把规则存在Nacos是一个上佳的方案, Nacos既是注册中心,又可以是配置中心,而Sentinel正是利用了配置中心原创 2022-04-05 14:27:18 · 1048 阅读 · 0 评论 -
14. Alibaba Sentinel 整合OpenFeign
背景介绍 OpenFeign用来调用服务是很方便的, Sentinel是用来做限流的,都是微服务的必备功能,但又都具备调用失败后降级的功能,那么我们整合了Sentinel和OpenFeign后, 如果都配备了降级功能, 框架该如何选择降级功能,是优先使用还是只选择了某个降级其他配置就失效了呢?& 那么我们就来通过一个项目整合验证一下 项目依赖 组件 版本 org.springframework.boot<br>spring-boot-starter-par原创 2022-04-05 13:28:26 · 822 阅读 · 0 评论 -
13. Alibaba Sentinel 资源定义@SentinelResource
介绍@SentinelResource Sentinel 提供了@SentinelResource注解用于定义资源,并提供了AspectJ的扩展用于自定义资源,处理BlockException等。 字段名 解释 value 资源名称,必须项(唯一,不能为空) blockHandler 定义资源访问限制后的处理方法,如果不在当前Controller,单独通过blockHandlerClass定义了类的话,需要定义成静态的方法才行 blockHandlerClass ..原创 2022-04-04 22:32:10 · 826 阅读 · 0 评论 -
12. Alibaba Sentinel 系统保护规则
介绍 Sentinel 系统自适应限流从整体维度对应用入口流量进行控制,结合应用的 Load、CPU 使用率、总体平均 RT、入口 QPS 和并发线程数等几个维度的监控指标,通过自适应的流控策略,让系统的入口流量和系统的负载达到一个平衡,让系统尽可能 保证系统整体的稳定性 保持系统最大吞吐量 系统保护规则是应用整体维度的,而不是资源维度的,并且仅对入口流量生效。入口流量指的是进入应用的流量,比如 Web 服务或 Dubbo 服务端接收的请求,都属于入口流量。 系统规则支持一下..原创 2022-04-04 15:39:34 · 822 阅读 · 0 评论 -
11. Alibaba Sentinel 热点规则
1. 概念介绍 何为热点?热点即经常访问的数据。有时候我们某个请求路径中的某个参数更甚至于某个参数值为热点数据。 比如某个商品秒杀,或者说突然降价的热点商品数据, 或者微博中某个人的突发事件等。 这些数据在某一段时间突然暴增,可能会把系统压垮。 所以需要针对他们进行限流,不能影响其他同类。 比如: 商品 ID 为参数,统计一段时间内最常购买的商品 ID 并进行限制 用户 ID 为参数,针对一段时间内频繁访问的用户 ID 进行限制 热点参数限流会统计传入参数中的热点参数,并根据配置的限流阈值与模..原创 2022-04-03 16:48:28 · 257 阅读 · 0 评论 -
10. Alibaba Sentinel 熔断策略之异常数
10. Alibaba Sentinel 熔断策略之异常数 1. 概念解释 熔断策略异常数是以请求异常数量作为阈值,当单位统计时长(statIntervalMs)内请求数大于设置的最小请求数,并且异常请求数设置的异常数,则接下来的请求会自动熔断,熔断时间为设置的熔断时长。经过熔断时长后熔断器会进入探测恢复状态(HALF-OPEN 状态),若在HALF-OPEN状态下有一个请求正常响应 则结束熔断,否则继续熔断。 具体设置如下图: 字段说明表格 字段名 说明 资源名 访问的请求路原创 2022-04-03 13:21:36 · 824 阅读 · 0 评论 -
9. Alibaba Sentinel 熔断策略之异常比例
1. 概念解释 熔断策略异常比例是以请求异常数量的比例作为阈值,当单位统计时长(statIntervalMs)内请求数大于设置的最小请求数,并且异常请求数的比例大于比例阈值,则接下来的请求会自动熔断,熔断时间为设置的熔断时长。经过熔断时长后熔断器会进入探测恢复状态(HALF-OPEN 状态),若在HALF-OPEN状态下有一个请求响应时间小于 最大RT 则结束熔断,否则继续熔断。 具体设置如下图: 字段说明表格 字段名 说明 资源名 访问的请求路径 熔断策略 熔断规..原创 2022-04-03 13:06:02 · 796 阅读 · 0 评论 -
8. Alibaba Sentinel 熔断策略之慢调用比例
1. 概念解释 熔断策略慢调用比例是以慢调用数量的比例作为阈值,首先需要设置最大 RT(即最大的响应时间,用于鉴定是否是慢调用),请求的响应时间大于该值则统计为慢调用。当单位统计时长(statIntervalMs)内请求数大于设置的最小请求数,并且慢调用的比例大于比例阈值,则接下来的请求会自动熔断,熔断时间为设置的熔断时长。经过熔断时长后熔断器会进入探测恢复状态(HALF-OPEN 状态),若在HALF-OPEN状态下有一个请求响应时间小于 最大RT 则结束熔断,否则继续熔断。 具体设置如下图: ..原创 2022-04-03 12:24:28 · 1720 阅读 · 1 评论 -
7. Alibaba Sentinel 流控效果之排队等待
名词解释排队等待 排队等待(匀速器):匀速排队,让请求以匀速的速度通过,阈值类型必须设置为QPS,否则无效 官方文档:flow-control 概念:匀速排队方式会严格控制请求通过的间隔时间,也即是让请求以均匀的速度通过,对应的是漏桶算法。 这种方式主要用于处理间隔性突发的流量,例如消息队列。想象一下这样的场景,在某一秒有大量的请求到来,而接下来的几秒则处于空闲状态,我们希望系统能够在接下来的空闲期间逐渐处理这些请求,而不是在第一秒直接拒绝多余的请求(削峰填谷)。 例图: 匀速器 它的..原创 2022-04-03 09:19:49 · 1097 阅读 · 0 评论 -
6. Alibaba Sentinel 流控效果之预热Warn Up
名词解释预热Warm Up Warm Up:根据coldFactor(冷加载因子,默认3)的值,从阈值/codeFacotor,经过预热时长,才达到设置的QPS阈值 官网手册地址:flow-control 概念:Warm Up方式,即预热/冷启动方式。该方式主要用于系统长期处于低水位的情况下,当流量突然增加时,直接把系统拉升到高水位可能瞬间把系统压垮。通过"冷启动",让通过的流量缓慢增加,在一定时间内逐渐增加到阈值上限,给冷系统一个预热的时间,避免冷系统被压垮的情况。 预热公式:初始阈值= 设定..原创 2022-04-01 22:54:16 · 861 阅读 · 0 评论 -
5. Alibaba Sentinel 流控规则之链路
1. 名词解释链路 介绍 链路是指调用路径, 假如某一个服务方法有多个调用来源, 如果我们只想限制来自于某一个来源的的调用路径, 就可以通过链路来限流,这个调用路径就是链路 比如在一个微服务中,两个接口都调用了同一个Service中的方法,并且该方法用SentinelResource(用于定义资源)注解标注了,然后对该注解标注的资源(方法)进行配置,则可以选择链路模式。 图解 2. 具体演示 1. 首先我们编写一个Service @Service public class TestS..原创 2022-04-01 22:00:52 · 1401 阅读 · 1 评论 -
4. Alibaba Sentinel Dashboard 流控规则之关联
1. 关联概念 官方解释:当关联的资源达到阈值时,就限流当前资源 通俗解释来说,比如那我们的程序,现在有testA接口和testB接口,当testA关联的资源testB达到阈值后,就限流testA。例如在一个电商系统中,当支付系统达到阈值,就限流下单系统,防止更多的订单产生的支付打垮了支付系统。 2. 具体演示 资源入库代码 当关联资源/testB的QPS阈值超时1时,就限流/testA,代码如下: package com.example.sentinel.service; import..原创 2022-03-31 23:30:15 · 497 阅读 · 0 评论 -
3. Alibaba Sentinel Dashboard 流控规则
Sentinel流控规则 流控规则基本介绍 名词解释 资源名 : 唯一名称,默认请求路径 针对来源: Sentinel可以针对调用者进行限流,填写微服务名,默认default(不区分来源) 阈值类型/单机阈值: QPS(每秒钟的请求数量):当调用该API的QPS达到阈值的时候,进行限流 线程数:当调用该API的线程数量达到阈值的时候,进行限流 是否集群:当前不需要集群 流控模式: 直接:API达到限流条件时,直接限流 关联:当关联的资源达到阈值时,就限流自己 链路:..原创 2022-03-31 22:40:47 · 489 阅读 · 0 评论 -
2. Alibaba Sentinel IDEA 简单使用
Wolai 目录 项目概述 IDEA创建微服务项目 查看结果 项目概述 需要启动nacos , 192.168.43.11:8848 需要启动sentinel-dashbord http://192.168.43.11:31808/#/login IDEA创建微服务项目,模块sentinel-service 启动微服务项目 然后去sentinel-dashbord查看情况 步骤1和步骤2都提前完成了,需要的查看其他博文 IDEA创建微服务项目 模块sentinel-service ..原创 2022-03-31 21:20:37 · 435 阅读 · 0 评论 -
1. Alibaba Sentinel Dashboard K8S安装
1. 什么是Sentinel 分布式系统的流量防卫兵:随着微服务的普及,服务调用的稳定性变得越来越重要。Sentinel以“流量”为切入点,在流量控制、断路、负载保护等多个领域开展工作,保障服务可靠性。 2. Sentinel官网 GitHub - alibaba/Sentinel: A powerful flow control component enabling reliability, resilience and monitoring for microservices. (面向云原生微..原创 2022-03-30 21:59:36 · 1194 阅读 · 0 评论