签名:但行好事,莫问前程。
文章目录
前言
一、Sentinel介绍
Sentinel是面向分布式、多语言异构化服务架构的流量治理组件,主要以流量为切入点,从流量路由、流量控制、流量整形、熔断降级、系统自适应过载保护、热点流量防护等多个维度来帮助开发者保障微服务的稳定性。
详细介绍参考Sentinel官方文档:http://sentinelguard.io
二、Docker安装Sentinel
1、查看镜像
docker search sentinel
2、拉取阿里巴巴官方sentinel镜像
docker pull bladex/sentinel-dashboard
3、查看sentinel镜像
docker images
4、docker运行sentinel容器
docker run --name sentinel -d -p 8858:8858 -d aa398704ebd3
注意这里的 aa398704ebd3为镜像id,将容器的8858端口映射到宿主机的8858端口上。
5、查看sentinel是否运行成功
docker ps
三、Sentinel控制台
输入网址访问:ip+端口号
http://10.33.1.134:8858
当你可以看到这个sentinel的登录界面,就说明docker已经将sentinel安装完成!(账号密码均为:sentinel)
四、SpringCloudalibaba整合Sentinel
1、pom文件中引入sentinel相关依赖
<!-- Sentinel依赖-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
</dependency>
<!-- Sentinel持久化依赖-->
<dependency>
<groupId>com.alibaba.csp</groupId>
<artifactId>sentinel-datasource-nacos</artifactId>
</dependency>
2、bootstrap.yml文件中配置sentinel
我这里想用sentinel监控我的订单服务:
spring:
application:
name: orderservice # 服务名称
cloud:
nacos:
server-addr: 10.33.1.134:8848 # nacos配置
sentinel:
transport:
dashboard: 10.33.1.134:8858 # 配置sentinel dashboard地址
port: 8719 # 默认8719端口,如果被占用,默认从8719开始依次+1扫描,直至找到未被占用的端口
#暴露端口
management:
endpoints:
web:
exposure:
include: "*"
3、启动订单服务访问订单接口
启动服务:
访问订单接口:
观察sentinel控制台:
3.1发现订单服务已经被监控,但是我访问订单接口,实时监控空白
3.2此时我们是用docker命令查看sentinel实时日志:
docker logs sentinel -f
发现sentinel的控制台一直再报一个连接ip地址超时的错误!
我们再看sentinel控制台的机器列表
原来是这个地址链接超时
3.3解决办法
yml配置文件里面加上client-ip:该ip是项目跑起来的机器上的ip地址(win+r:ipconfig显示的地址)
添加配置:
重启订单服务:
再次访问订单服务的接口(鼠标疯狂点击几下)
再次观看控制台的实时监控:
至此,sentinel控制台已经可以监控到我们的订单接口的请求了!
总结
博客主要记录了Docker安装Sentinel实时监控空白的问题以及解决方案,有啥错误或不足地方请指正,如果对你有所帮助,请一键三连。