一、基本简介
1、概念描述
Sentinel 以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。包括核心的独立类库,监控台,丰富的使用场景验证。(这似乎是阿里开源组件的一贯作风,极其有特点,且特点很规律)
基本特性图:
文章图片
补刀一句:这种图很多人可能不在意,但是一般官方给这个图就是该中间件的基本使用思路,与核心功能点。
2、基础性概念
资源管理
资源是Sentinel组件中的核心概念之一。应用服务器上脚本,静态页面,API接口,文件图片等都可以理解为资源,对于Java开发者而言,API接口就是这里资源的概念。
规则配置
Sentinel组件通过流控规则的配置,来指定允许该资源(API接口)通过的请求次数,IP黑白名单,应用服务等。
测试效果
QPS:每秒查询率,是一台服务器每秒能够处理的查询次数。
TPS:每秒处理事务数,事务处理整体倾向于整个过程。
二、框架环境整合
这里的环境主要整合Nacos注册中心,Feign服务,Sentinel哨兵,和Sentinel控制台。
1、基本依赖
这里的依赖需要参考官方文档,不同的环境使用不同的依赖,这里主要适配SpringCloud环境,所以使用如下包即可。
2、控制台面板
这里直接从GitHub下载一个控制台服务包即可,也可以自己下载源码,按照需求修改后自行打包。
java -jar sentinel-dashboard-1.7.1.jar
下载并启动控制台服务。
3、服务配置
这里主要是把用到的两个服务9001和9002连接到监控台。
spring:
application:
name: node09-nacos-9001
cloud:
nacos:
discovery:
server-addr: 127.0.0.1:8848
config:
server-addr: 127.0.0.1:8848
file-extension: yaml
sentinel:
transport:
port: 9001
dashboard: localhost:8080
最下面四行文件是哨兵控制台的主要配置,注意刚启动之后控制台是看不到连接的,有资源被触发之后才能看到。(附一张首页效果图)
文章图片
三、流量控制
1、基本描述
流量控制(flow control),其原理是监控应用流量的 QPS 或并发线程数等指标,当达到指定的阈值时对流量进行控制,以避免被瞬时的流量高峰冲垮,从而保障应用的高可用性。
2、限流规则
限流规则主要由下面几个因素组成。
resource:资源名,即限流规则的作用对象,对于Java服务端开发而言就是执行的方法;
count: 限流阈值,单位时间内能按照规则通过的请求量;
grade: 限流阈值类型,QPS 或并发线程数 ;
limitApp: 流控限制的指定应用来源,若为default则不区分调用来源;
strategy: 调用关系限流策略,直连,链路等;
controlBehavior: 流量控制效果,直接拒绝、Warm Up、匀速排队;
3、基本案例
硬编码
配置规则
public class FlowRuleConfig {
public static void initFlowQpsRule(String resourceName) {
List
文章图片
关于找一找教程网
本站文章仅代表作者观点,不代表本站立场,所有文章非营利性免费分享。
本站提供了软件编程、网站开发技术、服务器运维、人工智能等等IT技术文章,希望广大程序员努力学习,让我们用科技改变世界。
【哨兵|哨兵 双向 java_SpringCloud微服务(Sentinel哨兵组件,管理服务限流和降级)】[SpringCloud微服务:Sentinel哨兵组件,管理服务限流和降级]http://www.zyiz.net/tech/detail-120488.html
推荐阅读
- javaSE|线程与进程的关系,以及线程的四种创建方式
- 多线程|详解 Java 创建线程的三种方式
- 面试官(为什么要尽量避免使用 IN 和 NOT IN(大部分人都会答错!))
- java|C++模板笔记
- Java|不会数据结构(24张图让你彻底弄懂它,还不会你来打我!)
- 数据结构与算法|大数据算法题目及其解题技巧
- spring-boot随记
- java|Spring Boot 学习随记
- java|Spring Cloud 随记