1.版本
名称 | 版本 |
---|---|
jdk | 11 |
spring cloud alibaba | 2021.0.4.0 |
spring cloud gateway | 3.1.6 |
sentinel | 1.8.5 |
2.应用背景
- 项目中使用了nacos 作为注册中心及配置中心
- 已经使用了 openfeign 来进行远程调用,
- gateway 作为入口,现在使用 sentinel 来对入口进行管理
3.实际应用
这里其他的微服务就不列举了只关注gateway中 sentinel的使用
- 启动sentinel-dashboard 服务
- 下载地址:sentinel 控制台下载版本选择1.8.5
- linux 安装:
#1.解压 tar -zxvf sentinel-dashboard-1.8.5.jar #2. 添加启动脚本 #2.1 新建文件 vim sentinel_start.sh #2.2 将下列命令添加进去 port:自己之地给你端口 日志路径 nohup java -jar -Dserver.port=20670 sentinel-dashboard-1.8.5.jar >/opt/logs/sentinel.log 2>&1 & #2.3 赋予执行权限 chmod 755 sentinel_start.sh #3. 启动服务 ./sentinel_start.sh #4.查看启动日志 tail -f /opt/logs/sentinel.log
- gateway 项目依赖
<dependencies>
<!-- 引入gateway -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-gateway</artifactId>
<version>3.1.6</version>
</dependency>
<!-- 引入sentiel-gateway ,这里继承了所需的依赖无需其他依赖 -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-sentinel-gateway</artifactId>
</dependency>
<!-- 引入sentinel -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
</dependency>
<!-- 需要使用loadbalancer 来进行负载均衡 -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-loadbalancer</artifactId>
<version>3.1.6</version>
</dependency>
</dependencies>
- application.yml配置
spring:
application:
name: gateway
cloud:
sentinel:
enabled: true
transport:
port: 8719 #这个端口需要开放,否则无法与微服务进行心跳检测
dashboard: xxxx:20670 #这里的端口 自己开启sentinel-dashboard 服务时自己指定
clientIp: 127.0.0.1 #可不填,默认本机ip
eager: true #关闭懒加载,提起扫描端口
-
启动gateway项目
-
打开sentinel控制台,用户名和密码都是 sentinel,进入后如图:
-
添加流控配置
-
进行访问时,会提示错误