• Sentinel: 接入控制台实时查看监控数据


    Sentinel 提供一个轻量级的开源控制台,它提供机器发现以及健康情况管理、监控(单机和集群),规则管理和推送的功能。

    比如我们之前是直接在代码中初始限流的值,接入控制台后可以直接通过控制台进行限流参数的动态配置,非常方便。

    Sentinel 控制台最少应该包含如下功能:

    • 查看机器列表以及健康情况:收集 Sentinel 客户端发送的心跳包,用于判断机器是否在线。
    • 监控 (单机和集群聚合):通过 Sentinel 客户端暴露的监控 API,定期拉取并且聚合应用监控信息,最终可以实现秒级的实时监控。
    • 规则管理和推送:统一管理推送规则。
    • 鉴权:生产环境中鉴权非常重要。这里每个开发者需要根据自己的实际情况进行定制。

    部署控制台

    需要先下载控制台的jar包,可以直接从 https://github.com/alibaba/Sentinel/releases 页面进行下载,也可以自己下载源码进行编译(https://github.com/alibaba/Sentinel/tree/master/sentinel-dashboard),推荐直接下载编译好的。

    下载之后使用下面的命令启动即可:

    java -Dserver.port=8333 -Dcsp.sentinel.dashboard.server=localhost:8333 -Dproject.name=sentinel-dashboard -jar sentinel-dashboard-1.4.2.jar
    
    • -Dserver.port
      指定控制台的端口

    • -Dcsp.sentinel.dashboard.server
      指定控制台的地址,相当于自己注册自己,这样启动后就能看到自身的信息

    • -Dproject.name
      指定接入的应用名称

    启动后访问 http://localhost:8333 即可跳转到控制台的主页,如下图:

    控制台主页

    这个控制台里面的操作我们就不进行讲解了,大家自己去尝试下就会了,比如说我们要看实时监控的数据,那么就点击第一个实时监控的菜单,可以看到下面的效果:

    实时监控

    可以看到每个URI的QPS啊,拒绝的QPS等信息。

    客户端接入控制台

    上面其实是把控制台自己接入进来了,如果要接入我们实际工作中的项目,该怎么接入?

    客户端需要引入 Transport 模块来与 Sentinel 控制台进行通信。您可以通过 pom.xml 引入 JAR 包:

    <dependency>
    	<groupId>com.alibaba.csp</groupId>
    	<artifactId>sentinel-transport-simple-http</artifactId>
    	<version>1.4.1</version>
    </dependency>
    

    同样的增加JVM启动参数指定控制台的地址:

    -Dcsp.sentinel.dashboard.server=localhost:8333
    

    注:若您的应用为 Spring Boot 或 Spring Cloud 应用,您可以使用 Spring Cloud Alibaba,通过 Spring 配置文件来指定配置,详情请参考 Spring Cloud Alibaba Sentinel 文档 以及 示例
    这个我们后面再进行讲解,目前就直接用JVM参数设置。

    Sentinel 会在客户端首次调用的时候进行初始化,开始向控制台发送心跳包。然后就可以在控制台上看到我们自己接入的应用了。

    可以看到多了一个应用,因为我们没有指定应用名,就是默认的启动类的全称。

    接入之后就可以查看这个应用的一些信息了,还可以动态的修改限流的规则:

    当然这些规则目前只是存储在内存中,应用重启之后就丢失了,后面我们再学习如何持久化这些数据。

    欢迎加入我的知识星球,一起交流技术,免费学习猿天地的课程(http://cxytiandi.com/course)

    PS:目前星球中正在星主的带领下组队学习Sentinel,等你哦!

    微信扫码加入猿天地知识星球

    猿天地

  • 相关阅读:
    Alert弹出框处理
    python自动化测试
    is_selected()检查是否选中该元素
    is_enabled()检查元素是否可以编辑 如文本框
    is_displayed()检查元素是否可见
    text获取元素的文本
    back()是返回,也就是说,先加载地址到A页面,再打开页面到B页面,调用 back()方法,就返回到了A页面
    pyinstaller实现将python程序打包成exe文件
    读写excel文档
    操控MySQL数据库
  • 原文地址:https://www.cnblogs.com/yinjihuan/p/10574998.html
Copyright © 2020-2023  润新知