第九章 分布式系统的流量防卫兵-Sentinel

第九章 分布式系统的流量防卫兵-Sentinel,第1张

第九章 分布式系统的流量防卫兵-Sentinel 1.分布式系统的流量防卫兵Sentinel介绍

什么是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

3.AliababCloud微服务整合Sentinel限流配置

多个微服务接⼊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

验证如下

限流配置实 ***
浏览器快速刷新

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5719281.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-18
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存