Sentinel安装使用和配置,sentinel-dashboa

2022-12-05  本文已影响0人  前浪浪奔浪流

sentinel-dashboard安装使用和配置使用实例、应用技巧、基本知识点总结和需要注意事项。

一、Sentinel概述

随着微服务的流行,服务和服务之间的稳定性变得越来越重要。Sentinel 以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。

Sentinel 具有以下特征:
Sentinel 分为两个部分:
在限制的手段上,Sentinel 和 Hystrix 采取了完全不一样的方法。
通过响应时间对资源进行降级

除了对并发线程数进行控制以外,Sentinel 还可以通过响应时间来快速降级不稳定的资源。当依赖的资源出现响应时间过长后,所有对该资源的访问都会被直接拒绝,直到过了指定的时间窗口之后才重新恢复。


image.png

二、Sentinel dashboard控制台安装启动

1、Sentinel官网下载地址:

https://github.com/alibaba/Sentinel/releases

当前最新版本是:sentinel-dashboard-1.8.2.jar
版本一致性:
Spring Cloud Alibaba Version:2.2.5.RELEASE or 2.1.4.RELEASE or 2.0.4.RELEASE
Sentinel Version:1.8.0
Nacos Version:1.4.1
RocketMQ Version:4.4.0
Dubbo Version:2.7.8
Seata Version:1.3.0

Spring Cloud Alibaba Version:2.2.1.RELEASE or 2.1.2.RELEASE or 2.0.2.RELEASE
Sentinel Version:1.7.1
Nacos Version:1.2.1
RocketMQ Version:4.4.0
Dubbo Version:2.7.6
Seata Version:1.2.0

官方版本说明:

https://github.com/alibaba/spring-cloud-alibaba/wiki/%E7%89%88%E6%9C%AC%E8%AF%B4%E6%98%8E

Spring Cloud Alibaba Sentinel官网文档:

https://github.com/alibaba/spring-cloud-alibaba/wiki/Sentinel

Sentinel 控制台官网文档:

https://github.com/alibaba/Sentinel/wiki/%E6%8E%A7%E5%88%B6%E5%8F%B0

2、Sentinel dashboard控制台运行启动

Sentinel默认启动端口是8080,和Tomcat默认的端口冲突,如果需要修改Sentinel默认启动端口,使用参数:-Dserver.port=8070

Sentinel 启动命令格式:

java -jar sentinel-dashboard.jar

java -Dserver.port=8080 -Dcsp.sentinel.dashboard.server=localhost:8080 -Dproject.name=sentinel-dashboard -jar sentinel-dashboard.jar

示例:

java -Dserver.port=8070 -Dcsp.sentinel.dashboard.server=localhost:8070 -Dproject.name=sentinel-dashboard -jar sentinel-dashboard-1.8.1.jar

启动后:
INFO: Sentinel log output type is: file
INFO: Sentinel log charset is: utf-8
INFO: Sentinel log base directory is: C:\logs\sentinel-dashboard
INFO: Sentinel log name use pid is: false

启动(是否注册Sentinel自己):

不注册Sentinel自己

java -Dserver.port=8070 -Dcsp.sentinel.log.dir=C:\logs\sentinel-dashboard -jar sentinel-dashboard-1.8.1.jar

注册Sentinel自己

java -Dserver.port=8070 -Dcsp.sentinel.dashboard.server=localhost:8070 -Dproject.name=sentinel-dashboard -Dcsp.sentinel.log.dir=C:\logs\sentinel-dashboard -jar sentinel-dashboard-1.8.1.jar

访问地址:

http://localhost:8070/

用户名:sentinel
密码:sentinel
从 Sentinel 1.6.0 起,Sentinel 控制台引入基本的登录功能,默认用户名和密码都是:sentinel

3、Sentinel dashboard控制台启动配置项

-Dserver.port=8080:用于指定 Sentinel 控制台端口为 8080,如若8080端口冲突,可使用 -Dserver.port=新端口 进行设置。。
-Dcsp.sentinel.dashboard.server=localhost:8080:指定控制台地址和端口,会自动向该地址发送心跳包。地址格式为:hostIp:port,l配置成ocalhost:8080即监控自己
-Dproject.name=sentinel-dashboard:指定Sentinel控制台程序显示的名称
-Dcsp.sentinel.log.dir:指定Sentinel 日志文件目录,默认是:${user.home}/logs/csp/
-Dcsp.sentinel.api.port=xxxx:本地的 Sentinel 客户端端口(可选,默认是 8719,有冲突会尝试向后探测)。若启动多个应用,则需要通过 -Dcsp.sentinel.api.port=xxxx 指定客户端监控 API 的端口(默认是 8719)。
-Dcsp.sentinel.app.type=1:从 1.6.3 版本开始,控制台支持网关流控规则管理。启动参数以将您的服务标记为 API Gateway,在接入控制台时您的服务会自动注册为网关类型,然后您即可在控制台配置网关规则和 API 分组。

用户可以通过如下参数进行鉴权配置:
-Dsentinel.dashboard.auth.username=sentinel 用于指定控制台的登录用户名为 sentinel;
-Dsentinel.dashboard.auth.password=123456 用于指定控制台的登录密码为 123456;如果省略这两个参数,默认用户和密码均为 sentinel;
-Dserver.servlet.session.timeout=7200 用于指定 Spring Boot 服务端 session 的过期时间,如 7200 表示 7200 秒;60m 表示 60 分钟,默认为 30 分钟;

同样也可以直接在 Spring properties 文件中进行配置。

注意:部署多台控制台时,session 默认不会在各实例之间共享,这一块需要自行改造。

配置方式
Sentinel 提供如下的配置方式:
JVM -D 参数方式
properties 文件方式(1.7.0 版本开始支持)
其中,project.name 参数只能通过 JVM -D 参数方式配置(since 1.8.0 取消该限制),其它参数支持所有的配置方式。
优先级顺序:JVM -D 参数的优先级最高。若 properties 和 JVM 参数中有相同项的配置,以 JVM 参数配置的为准。
用户可以通过 -Dcsp.sentinel.config.file 参数配置 properties 文件的路径,支持 classpath 路径配置(如 classpath:sentinel.properties)。
默认 Sentinel 会尝试从 classpath:sentinel.properties 文件读取配置,读取编码默认为 UTF-8。

配置项    类型    默认值    最小值    描述
auth.enabled    boolean    true    -    是否开启登录鉴权,仅用于日常测试,生产上不建议关闭
sentinel.dashboard.auth.username    String    sentinel    -    登录控制台的用户名,默认为 sentinel
sentinel.dashboard.auth.password    String    sentinel    -    登录控制台的密码,默认为 sentinel
sentinel.dashboard.app.hideAppNoMachineMillis    Integer    0    60000    是否隐藏无健康节点的应用,距离最近一次主机心跳时间的毫秒数,默认关闭
sentinel.dashboard.removeAppNoMachineMillis    Integer    0    120000    是否自动删除无健康节点的应用,距离最近一次其下节点的心跳时间毫秒数,默认关闭
sentinel.dashboard.unhealthyMachineMillis    Integer    60000    30000    主机失联判定,不可关闭
sentinel.dashboard.autoRemoveMachineMillis    Integer    0    300000    距离最近心跳时间超过指定时间是否自动删除失联节点,默认关闭
sentinel.dashboard.unhealthyMachineMillis    Integer    60000    30000    主机失联判定,不可关闭
server.servlet.session.cookie.name    String    sentinel_dashboard_cookie    -    控制台应用的 cookie 名称,可单独设置避免同一域名下 cookie 名冲突

更多配置项见:

https://github.com/alibaba/Sentinel/wiki/%E5%90%AF%E5%8A%A8%E9%85%8D%E7%BD%AE%E9%A1%B9

注:若通过控制台推送规则时出现 invalid type 或 empty type 的错误,请确保 transport 模块版本与 core 模块版本保持一致;若控制台版本 >= 1.7.1,请将接入端的相关依赖也升级至 1.7.1 及以上版本。

三、Sentinel规则管理及推送

一般来说,规则的推送有下面三种模式:

推送模式说明优点缺点

1、原始模式

API 将规则推送至客户端并直接更新到内存中,扩展写数据源(WritableDataSource)
优点:
简单,无任何依赖

缺点:
不保证一致性;规则保存在内存中,重启即消失。严重不建议用于生产环境

2、Pull 模式

扩展写数据源(WritableDataSource), 客户端主动向某个规则管理中心定期轮询拉取规则,这个规则中心可以是 RDBMS、文件 等
优点:
简单,无任何依赖;规则持久化 不保证一致性;

缺点:
实时性不保证,拉取过于频繁也可能会有性能问题。

3、Push 模式

扩展读数据源(ReadableDataSource),规则中心统一推送,客户端通过注册监听器的方式时刻监听变化,比如使用 Nacos、Zookeeper 等配置中心。这种方式有更好的实时性和一致性保证。生产环境下一般采用 push 模式的数据源。
优点:
规则持久化;一致性;快速

缺点:
引入第三方依赖

四、项目配置Sentinel,在Sentinel dashboard实现监控

1、pom.xml文件引入依赖

引入 Sentinel,使用 group ID 为 com.alibaba.cloud 和 artifact ID 为 spring-cloud-starter-alibaba-sentinel 的 starter。

<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
</dependency>
2、application.properties文件配置
#spring.cloud.sentinel.transport.port 端口配置会在应用对应的机器上启动一个 Http Server,该 Server 会与 Sentinel 控制台做交互。
spring.cloud.sentinel.transport.port=8719
#默认是:localhost:8080,自定义后:localhost:8070
spring.cloud.sentinel.transport.dashboard=localhost:8070

3、使用浏览器打开:

http://127.0.0.1:8901/sentinel

刚打开时,没有发现我们的项目,那是因为Sentinel使用了懒加载,要请求一下接口才会显示出来:
http://127.0.0.1:8901/sentinel

4、Sentinel 详细项目使用见:

https://www.cnblogs.com/fanshuyao/p/14607028.html

限制项目使用内存的启动语句:

nohup java -Dserver.port=8090 -Dcsp.sentinel.dashboard.server=localhost:8090 -Xms512m -Xmx512m -jar sentinel-dashboard-1.8.2.jar &

转载自:https://www.cnblogs.com/yyhhblog/p/16054380.html

上一篇 下一篇

猜你喜欢

热点阅读