一.导入依赖-common模块(每个模块都要)

  1. <!--sentinel-->
  2. <dependency>
  3. <groupId>com.alibaba.cloud</groupId>
  4. <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
  5. </dependency>
  6. <!--健康监控-sentienl直接获取actuator统计的数据来生成图表-->
  7. <dependency>
  8. <groupId>org.springframework.boot</groupId>
  9. <artifactId>spring-boot-starter-actuator</artifactId>
  10. </dependency>

二.下载sentinel控制台

1.下载控制台jar包

下载控制台jar包,需要提前查看项目中依赖的sentinel版本,然后下载对应版本控制台
image.png
image.png

2.本地启动jar包

java -jar sentinel-dashboard-1.6.3.jar --server.port=8333

3.打开控制台

image.png

三.配置sentinel控制台地址信息

spring:
  cloud:
      sentinel:
      transport:
        dashboard: 192.168.56.1:8333    # 控制台的安装位置
        port: 8719    # 与sentinel单独连接的端口
        client-ip: 192.168.56.1    # 本机的ip,如果sentinel装在虚拟机,必须配这个

# 监控监控配置(spring-boot-starter-actuator) 暴露所有应用信息监控
management:
  endpoints:
    web:
      exposure:
        include: '*'

四.控制台调整-流控规则参数

image.png

小问题:默认所有的流控设置保存在内存(项目)中,重启失效

第一次启动项目后,设置好的流控规则,在第二次启动项目后访问接口,发现 sentinel 实时监控中一直显示为空白状态,一般是 sentinel 服务器和项目服务器时间不一致造成的,此时就需要同步虚拟机与项目服务器的时间,重启服务器、项目服务器,测试即可。

解决办法:自动同步时间

# 安装时间同步插件
yum install chrony -y

# 启动时间同步
systemctl start chronyd

# 开机自启
systemctl enable chronyd

具体代码

328-329,整合Sentinel、自定义秒杀流控响应

330,主要服务引入Sentinel