Spring Cloud Alibaba Sentinel 控制台

您所在的位置:网站首页 sentinel接入控制台 Spring Cloud Alibaba Sentinel 控制台

Spring Cloud Alibaba Sentinel 控制台

2023-03-01 23:26| 来源: 网络整理| 查看: 265

简介

Sentinel 控制台是流量控制、熔断降级规则统一配置和管理的入口,它为用户提供了机器自发现、簇点链路自发现、监控、规则配置等功能。在 Sentinel 控制台上,我们可以配置规则并实时查看流量控制效果。

下载

有以下两种方式获取Sentinel控制台

下载最新版本的控制台 jar 包 下载地址:https://github.com/alibaba/Sentinel/releases

从最新版本的源码自行构建 Sentinel 控制台。源码地址:https://github.com/alibaba/Sentinel/tree/master/sentinel-dashboard

建议使用源码自行构建。(因为后续我们还要在源码基础上扩展,实现动态规则匹配,监控数据持久化等) 启动控制台 下载sentinel-dashboard代码即可

在这里插入图片描述

使用代码工具打开,执行maven打包,打包成功后会在target目录生成sentinel-dashboard.jar。

使用下面的命令启动控制台

java -Dserver.port=8800 -jar sentinel-dashboard.jar

-Dserver.port=8800 表示启动端口为8800

启动之后通过 http://localhost:8800/ 访问 在这里插入图片描述

默认情况下,登录的用户名和密码都是sentinel。这个可以修改,我们后面再说。 登录之后出现如下界面,说明我们控制台启动成功。

在这里插入图片描述 此时我们没有任何的菜单可以点击,因为我们还没有接入客户端。

控制台配置项

控制台的一些特性可以通过配置项来进行配置,配置项主要有两个来源:System.getProperty() 和 System.getenv(),同时存在时后者可以覆盖前者。

通过环境变量进行配置时,因为不支持 . 所以需要将其更换为 _。

配置项类型默认值最小值描述auth.enabledbooleantrue-是否开启登录鉴权,仅用于日常测试,生产上不建议关闭sentinel.dashboard.auth.usernameStringsentinel-登录控制台的用户名,默认为 sentinelsentinel.dashboard.auth.passwordStringsentinel-登录控制台的密码,默认为 sentinelsentinel.dashboard.app.hideAppNoMachineMillisInteger060000是否隐藏无健康节点的应用,距离最近一次主机心跳时间的毫秒数,默认关闭sentinel.dashboard.removeAppNoMachineMillisInteger0120000是否自动删除无健康节点的应用,距离最近一次其下节点的心跳时间毫秒数,默认关闭sentinel.dashboard.unhealthyMachineMillisInteger6000030000主机失联判定,不可关闭sentinel.dashboard.autoRemoveMachineMillisInteger0300000距离最近心跳时间超过指定时间是否自动删除失联节点,默认关闭sentinel.dashboard.unhealthyMachineMillisInteger6000030000主机失联判定,不可关闭server.servlet.session.cookie.nameStringsentinel_dashboard_cookie-控制台应用的 cookie 名称,可单独设置避免同一域名下 cookie 名冲突 配置示例 命令行方式:

java -Dsentinel.dashboard.app.hideAppNoMachineMillis=60000

Java 方式:

System.setProperty(“sentinel.dashboard.app.hideAppNoMachineMillis”, “60000”);

环境变量方式:

sentinel_dashboard_app_hideAppNoMachineMillis=60000

客户端接入 添加 Transport 模块

客户端需要引入 Transport 模块来与 Sentinel 控制台进行通信

com.alibaba.csp sentinel-transport-simple-http 1.8.6

注:本文使用的Sentinel版本为1.8.6。若使用我们上篇文章的示例,此模块已经引入。

添加 sentinel.properties # 应用名称(可以为中文,但建议和我们的项目名称一致) project.name = SentinelDemo # 控制台的地址,指定控制台后客户端会自动向该地址发送心跳包。格式为host:port,必须 csp.sentinel.dashboard.server = 127.0.0.1:8800 # 本地启动 HTTP API Server 的端口号,默认8719 #(我启动后是8720端口,官网说明:默认为 8719,若端口冲突会自动向下探测可用的端口) csp.sentinel.api.port = 8719

这些均为客户端配置项。关于客户端配置项,我们会在后面详解。

启动客户端 触发客户端初始化

Sentinel 会在客户端首次调用的时候进行初始化,开始向控制台发送心跳包。也就是说,启动客户端之后,需要请求一次,客户端才会对控制台发送心跳包,控制台界面才能看到我们的客户端应用信息。

在这里插入图片描述

控制台界面 簇点链路

在这里插入图片描述 簇点链路(单机调用链路)页面实时的去拉取指定客户端资源的运行情况。它一共提供两种展示模式:一种用树状结构展示资源的调用链路,另外一种则不区分调用链路展示资源的实时情况。

注: 簇点链路监控是内存态的信息,它仅展示启动后调用过的资源。

实时监控

在这里插入图片描述

同一个服务下的所有机器的簇点信息会被汇总,并且秒级地展示在"实时监控"下

实时监控仅存储 5 分钟以内的数据,如果需要持久化,需要通过调用实时监控接口来定制。

请确保 Sentinel 控制台所在的机器时间与自己应用的机器时间保持一致,否则会导致拉不到实时的监控数据。

规则管理及推送

在这里插入图片描述

关于规则的推送我们将会单独讲解,此处不做过多介绍。

客户端配置项 配置方式

Sentinel 提供如下的配置方式:

JVM -D 参数方式properties 文件方式(1.7.0 版本开始支持) – 我们的示例使用的是该方式

优先级顺序:JVM -D 参数的优先级最高。若 properties 和 JVM 参数中有相同项的配置,以 JVM 参数配置的为准。

用户可以通过 -Dcsp.sentinel.config.file 参数配置 properties 文件的路径,支持 classpath 路径配置(如 classpath:sentinel.properties)。默认 Sentinel 会尝试从 classpath:sentinel.properties 文件读取配置,读取编码默认为 UTF-8。

在Spring boot中如果我们使用sentinel 的start,则我们可以在application配置文件中直接配置

com.alibaba.cloud spring-cloud-starter-alibaba-sentinel spring: cloud: sentinel: transport: port: 8719 dashboard: localhost:8080

其配置项在spring.cloud.sentinel 下

基础配置项 名称含义类型默认值是否必需备注project.name指定应用的名称Stringnull否csp.sentinel.app.type指定应用的类型int0 (APP_TYPE_COMMON)否1.6.0 引入csp.sentinel.metric.file.single.size单个监控日志文件的大小long 52428800 (50MB)否csp.sentinel.metric.file.total.count监控日志文件的总数上限int6否csp.sentinel.statistic.max.rt最大的有效响应时长(ms),超出此值则按照此值记录int4900否1.4.1 引入csp.sentinel.spi.classloaderSPI 加载时使用的 ClassLoader,默认为给定类的 ClassLoaderStringdefault否若配置 context 则使用 thread context ClassLoader。1.7.0 引入

project.name 项用于指定应用名(appName)。若未指定,则默认解析 main 函数的类名作为应用名。建议手动指定应用名。

transport配置项 名称含义类型默认值是否必需csp.sentinel.dashboard.server控制台的地址,指定控制台后客户端会自动向该地址发送心跳包。地址格式为:hostIp:portStringnull是csp.sentinel.heartbeat.interval.ms心跳包发送周期,单位毫秒longnull非必需,若不进行配置,则会从相应的 HeartbeatSender 中提取默认值csp.sentinel.api.port本地启动 HTTP API Server 的端口号int8719否csp.sentinel.heartbeat.client.ip指定心跳包中本机的 IPString-若不指定则通过 HostNameUtil 解析;该配置项多用于多网卡环境 日志相关配置项 名称含义类型默认值是否必需备注csp.sentinel.log.dirSentinel 日志文件目录String${user.home}/logs/csp/否1.3.0 引入csp.sentinel.log.use.pid日志文件名中是否加入进程号,用于单机部署多个应用的情况booleanfalse否1.3.0 引入csp.sentinel.log.output.typeRecord 日志输出的类型,file 代表输出至文件,console 代表输出至终端Stringfile否1.6.2 引入

若需要在单台机器上运行相同服务的多个实例,则需要加入 -Dcsp.sentinel.log.use.pid=true 来保证不同实例日志的独立性。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3