sentinel-dashboard.jar 安装
本文涉及的基本概念:
几种服务限流方式:
熔断:拒绝流量访问,当系统恢复正常时在关闭熔断
服务降级:将次要服务降级,停止服务,将系统资源释放出来给核心功能
延迟处理:在前端设置一个流程缓冲池,将所有的流程全部缓冲到这个池子不立即处理,常见队列缓模式处理,服务端处理不及时会丢失部分请求
特权处理:优先处理需要高保障的请求,其他请求丢去或者延迟处理
Sentinel 的 能做什么?
可以通过 Sentinel 的控制台,我们可以对规则进行查询和修改,也可以查看到实时监控,机器列表等信息
官方下载地址:https://github.com/alibaba/Sentinel/releases
启动控制台
-Dproject.name=sentinel-dashboard 指定Sentinel控制台程序的名称
-Dserver.port=8718 控制台端口,sentinel控制台是一个spring boot程序。
注:客户端需向控制台提供端口,配置文件配置,如:spring.cloud.sentinel.transport.port=8718
-Dcsp.sentinel.dashboard.server=localhost:8718 控制台的地址,指定控制台后客户端会自动向该地址发送心跳包。
-Dcsp.sentinel.api.port=8719 (默认8719)
注:客户端提供给Dashboard访问或者查看Sentinel的运行访问的参数 。若启动多个应用,则需要通过 -Dcsp.sentinel.api.port=xxxx 指定客户端监控 API 的端口
注:
csp.sentinel.dashboard.server这个配置是用在客户端,这里Sentinel控制台也使用是用于自己监控自己程序的api,否则无法显示控制台的api情况,当然这个也可以根据情况不显示。
csp.sentinel.api.port=8719 本地启动 HTTP API Server 的端口号。是客户端的端口,需要把客户端设置的端口穿透防火墙,可在控制台的“机器列表”中查看到端口号,这里Sentinel控制台也使用是用于自己程序的api传输,由于是默认端口所以控制台也可以不设置。
控制台推送规则的日志在 :${user.home}/logs/csp/sentinel-dashboard.log 中,
客户端接收规则日志在 ${user.home}/logs/csp/record.log 中
启动配置wiki: https://github.com/alibaba/Sentinel/wiki/启动配置项
spring cloud alibaba配置、整合feign、动态数据源支持 等的wiki:https://github.com/spring-cloud-incubator/spring-cloud-alibaba/wiki/Sentinel
java -Dserver.port=10090 -Dcsp.sentinel.dashboard.server=localhost:10090 -Dproject.name=sentinel-dashboard -jar sentinel-dashboard.jar
java -Dcsp.sentinel.api.port=10090 -Dserver.port=10090 -Dcsp.sentinel.dashboard.server=localhost:10090 -Dproject.name=sentinel-dashboard -jar sentinel-dashboard.jar
然后用浏览器访问地址:http://localhost:10090
一:首先在项目里添加 sentinel 的 maven 依赖,如下:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
<version>0.2.1.RELEASE</version>
</dependency>
可以加版本号,也可以省略版本号,具体如下:

配置控制台信息
在 application.yml 配置文件中:
spring:
cloud:
sentinel:
transport:
port: 8719
dashboard: localhost:8080
这里的 spring.cloud.sentinel.transport.port 端口配置会在应用对应的机器上启动一个 Http Server,该 Server 会与 Sentinel 控制台做交互。比如 Sentinel 控制台添加了一个限流规则,会把规则数据 push 给这个 Http Server 接收,Http Server 再将规则注册到 Sentinel 中。
动态数据源支持
SentinelProperties 内部提供了 TreeMap 类型的 datasource 属性用于配置数据源信息。
在当前项目的 application.properties 中增加限流的配置
# 文件规则数据源
spring.cloud.sentinel.datasource.ds1.file.file=classpath: flowrule.json
# JSON格式的数据
spring.cloud.sentinel.datasource.ds1.file.data-type=json
# 规则类型
spring.cloud.sentinel.datasource.ds1.file.rule-type=flow
flowrule.json 的详细内容:
[
{
"resource": "hello",
"controlBehavior": 0,
"count": 1,
"grade": 1,
"limitApp": "default",
"strategy": 0
}
]
@SentinelResource使用
@GetMapping("/test")
@SentinelResource(value="hello",blockHandler="handleException",blockHandlerClass=ExceptionUtil.class)
public String test() {
String result = restTemplate.getForObject("http://localhost:8087/user/name", String.class);
return result;
}
回退内容定义:
public class ExceptionUtil {
public static String handleException(BlockException ex) {
return "扛不住了啊....";
}
}
前面我们使用注解的话都是手动配置SentinelResourceAspect类,为什么今天不需要配置SentinelResourceAspect呢?
那是因为在spring-cloud-alibaba中已经默认配置好了,代码在org.springframework.cloud.alibaba.sentinel.custom.SentinelAutoConfiguration中,代码如下:
@Bean
@ConditionalOnMissingBean
public SentinelResourceAspect sentinelResourceAspect() {
return new SentinelResourceAspect();
}
sentinel-dashboard.jar 安装的更多相关文章
- Sentinel Dashboard(基于1.8.1)流控规则持久化到Nacos——涉及部分Sentinel Dashboard源码改造
前言 之前虽然也一直在使用sentinel实现限流熔断功能,但却没有好好整理之前看的源码与资料,今天有时间将之前自己整理过的资料写成一篇博文,或者是是一篇关于Sentinel(基于目前最近版本1.8, ...
- jar安装
安装sdk jar 安装到本地 mvn install:install-file -Dfile=F:\workspace\api-cookbook\java\src\main\lib\sdk-1.10 ...
- Redis Sentinel 集群安装 step by step
一. 准备材料 服务器 IP address 操作系统 位数 Redis 版本 CNT06CAH05 192.168.3.47 CentOS 6.5 x64 Redis-3.2.6 sentine ...
- Spring Cloud Alibaba基础教程:Sentinel Dashboard中修改规则同步到Nacos
上一篇我们介绍了如何通过改造Sentinel Dashboard来实现修改规则之后自动同步到Apollo.下面通过这篇,详细介绍当使用Nacos作为配置中心之后,如何实现Sentinel Dashbo ...
- 本地jar安装至maven仓库
本地jar安装至maven仓库 一般不建议通过这种方式配置依赖,通常做法建议你把本地包安装到maven仓库,命令如下: mvn install:install-file-DgroupId=com.ht ...
- 将jar安装到本地mvn仓库
声明:仅限于将maven Repository下载的jar(使用maven打包的jar)安装到本地的maven仓库中,不保证全部成功,最初的时候添加依赖发现下载始终不成功,只能手动下载,但是手动下载完 ...
- Spring Cloud Alibaba基础教程:Sentinel Dashboard同步Apollo存储规则
在之前的两篇教程中我们分别介绍了如何将Sentinel的限流规则存储到Nacos和Apollo中.同时,在文末的思考中,我都指出了这两套整合方案都存在一个不足之处:不论采用什么配置中心,限流规则都只能 ...
- Sentinel Dashboard 的 Docker 镜像使用
1.下载 docker 镜像:https://hub.docker.com/r/anjia0532/sentinel-docker 2.启动 docker 容器:docker run -p8080:8 ...
- Spring Cloud Alibaba基础教程:Sentinel Dashboard中修改规则同步到Apollo
在之前的两篇教程中我们分别介绍了如何将Sentinel的限流规则存储到Nacos和Apollo中.同时,在文末的思考中,我都指出了这两套整合方案都存在一个不足之处:不论采用什么配置中心,限流规则都只能 ...
- Sentinel Dashboard 规则 持久化到Nacos
本篇文章基于sentinel1.8.4版本进行改造的.本篇主要记录改造步骤 1.下载源码 https://github.com/alibaba/Sentinel 2.打开下载的sentinel,到se ...
随机推荐
- Gitee码云:用git上传本地文件到码云gitee的方法
首先登录码云 https://gitee.com/,注册一个账号,并登录账号. 1. 在码云上创建项目 在码云首页顶部,下图所示,右上角头像旁边的加号,鼠标移上去会显示下拉的,点击"新建项目 ...
- 掌上新闻随心播控,HarmonyOS SDK助力新浪新闻打造精致易用的资讯服务新体验
原生智能是HarmonyOS NEXT的核心亮点之一,依托HarmonyOS SDK丰富全面的开放能力,开发者只需通过几行代码,即可快速实现AI功能.新浪新闻作为鸿蒙原生应用开发的先行者之一,从有声资 ...
- Tailscale 的 TLS 证书过期,网站挂了 90 分钟!
3月7日,基于 WireGuard 的知名 VPN 厂商 Tailscale 的官方网站 tailscale.com 因 TLS 证书过期而中断服务约90分钟. 虽然影响有限,但这起事件还是在 Hac ...
- R语言学习1:基本数据类型,文件读取
本系列是一个新的系列,在此系列中,我将和大家共同学习R语言.由于我对R语言的了解也甚少,所以本系列更多以一个学习者的视角来完成. 参考教材:<R语言实战>第二版(Robert I.Kaba ...
- Grafana 系列-统一展示-1-开篇
系列文章 Grafana 系列文章 Grafana 简介 Grafana 是 Grafana Labs 的第一款也是最重要的产品.它的定位是可视化, 用于监控展示 和 可观察性. 是当前最为完善.流行 ...
- Godot.NET C#IOC重构(2):TileMap 详解
目录 前言 TileMap添加 TileMap绘制 TileMap 连续图块 修改纹理原点 统一设置 自动地形 匹配规则 修改匹配概率 修改概率前 修改概率后 随机图块 Scattering 不连续间 ...
- 美丽的夕阳qsnctfwp
题目附件 查看图片,放大左侧发现建筑物上 8 个字:龙腾公寓/福阳集团 根据文字在搜索引擎中查找,并由此确定城市 通过百度地图全景地图查看当地桥梁,并与照片比对 调整地图比例尺,记录桥名 根据提示qs ...
- c# 优化代码的一些规则——判断null值得不同写法[六]
前言 先来看一个例子: 假设updated 是一个委托: if(updated!=null) { updated(); } 请问上面写法在多线程中安全吗?如果不安全会抛出什么异常呢? 正文 上面的答案 ...
- 重新整理数据结构与算法(c#系列)—— 树的前中后序遍历查找[十七]
前言 树的前中后序遍历 是根据前中后序的顺序来查找,找到了则弹出. 正文 节点模型: public class HeroNode { private int no; private string na ...
- vue3中动态添加路由刷新无法正确匹配路由组件
1.问题 动态添加路由之后,页面重新匹配路由,匹配到了设置的404 notfound页面 该页面是在路径无法匹配到的时候才会跳转的页面 2. 问题查找 在前置路由守卫打印to 发现当前地址匹配到的组件 ...