什么是Sentinel
阿⾥巴巴开源的分布式系统流控⼯具
以流量为切⼊点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性
丰富的应⽤场景:消息削峰填⾕、集群流量控制、实时熔断下游不可⽤应⽤等
完备的实时监控:Sentinel 同时提供实时的监控功能
提供开箱即⽤的与其它开源框架/库的整合模块,例如与 Spring Cloud、Dubbo、gRPC 的整合官网:https://github.com/alibaba/Sentinel/wiki/主页核⼼概念:
资源:是 Sentinel 中的核⼼概念之⼀,可以是java程序中任何内容,可以是服务或者⽅法甚⾄代码,总结起来就是我们要保护的东⻄
规则:定义怎样的⽅式保护资源,主要包括流控规则、熔断降级规则等
2.Sentinel依赖引⼊和控制台搭建
Sentinel 分为两个部分
核⼼库(Java 客户端)不依赖任何框架/库,能够运⾏于所有 Java 运⾏时环境,同时对 Dubbo、SpringCloud 等框架也有较好的⽀持
控制台(Dashboard)基于 Spring Boot 开发,打包后可以直接运⾏,不需要额外的 Tomcat 等应⽤容器微服务引⼊Sentinel依赖
com.alibaba.cloud spring-cloud-starter-alibaba-sentinel
Sentinel控制台搭建
官网:https://github.com/alibaba/Sentinel/wiki/控制台
控制台包含如下功能
查看机器列表以及健康情况:收集 Sentinel 客户端发送的⼼跳包,⽤于判断机器是否在线
监控 (单机和集群聚合)通过 Sentinel 客户端暴露的监控API,定期拉取并且聚合应⽤监控信息,最终可以实现秒级的实时监控
规则管理和推送:统⼀管理推送规则
鉴权:⽣产环境中鉴权⾮常重要。这⾥每个开发者需要根据⾃⼰的实际情况进⾏定制
//启动 Sentinel 控制台需要 JDK 版本为 1.8 及以上版 本, //-Dserver.port=8080 ⽤于指定 Sentinel 控制台端⼝ 为 8080 //默认⽤户名和密码都是 sentinel java -Dserver.port=8080 -Dcsp.sentinel.dashboard.server=localhost:8080 -Dproject.name=sentinel-dashboard -jar sentinel-dashboard.jar
测试地址 http://192.168.3.104:8080/#/dashboard/metric/sentinel-dashboard
多个微服务接⼊Sentinel配置
spring: sentinel: transport: dashboard: 192.168.3.104:8080 port: 9006 #dashboard: 8080 控制台端⼝ #port: 9006 本地启的端⼝,随机选个不能被占⽤的,与 #dashboard进⾏数据交互,会在应⽤对应的机器上启动⼀个 #Http Server,该 Server 会与 Sentinel 控制台做交 #互, 若被占⽤,则开始+1⼀次扫描
微服务注册上去后,由于Sentinel是懒加载模式,所以需要访问微服务后才会在控制台出现
主机 IP 192.168.3.102,虚拟机 IP 192.168.3.104
Sentinel 服务部署在虚拟机中,运行后在向客户端发送心跳时 IP 变为 169 .168.117.1本地回环地址,无法连接到本机客户端
解决方法如下
spring: sentinel: transport: dashboard: 192.168.3.104:8080 port: 9006 clientIp: 192.168.3.102 //设置主机IP
验证如下
限流配置实 ***
浏览器快速刷新
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)