Sentinel是阿里中间件团队开源的,面向分布式服务架构的轻量级流量控制产品,主要以流量为切入点,从流量控制熔断降级系统负载保护等多个维度来帮助用户保护服务的稳定性。Sentinel主要有2个部分,核心部分以及控制台部分,本文主要先对Sentinel进行简介以及介绍控制台的安装


简介

Sentinel 具有以下特征:

  • 丰富的应用场景: Sentinel 承接了阿里巴巴近 10 年的双十一大促流量的核心场景,例如秒杀,即突发流量控制在系统容量可以承受的范围;消息削峰填谷;实时熔断下游不可用应用,等等。
  • 完备的监控功能: Sentinel 同时提供最实时的监控功能,您可以在控制台中看到接入应用的单台机器秒级数据,甚至 500 台以下规模的集群的汇总运行情况。
  • 简单易用的扩展点: Sentinel 提供简单易用的扩展点,您可以通过实现扩展点,快速的定制逻辑。例如定制规则管理,适配数据源等。

Sentinel 分为两个部分:

  • 核心库(Java 客户端)不依赖任何框架/库,能够运行于所有 Java 运行时环境,同时对 Dubbo / Spring Cloud 等框架也有较好的支持。
  • 控制台(Dashboard)基于 Spring Boot 开发,打包后可以直接运行,不需要额外的 Tomcat 等应用容器。

控制台的安装

  • 首先下载Sentinel项目压缩包,项目官方地址:https://github.com/alibaba/Sentinel.git
  • 编译项目(这里使用maven工具进行编译)
    1. 解压压缩包,转到解压后的目录下
    2. 在该目录的路径下执行命令:mvn clean package,等待编译打包完成
    3. 编译打包完成以后,转到sentinel-dashboard的target目录下会看到sentinel-dashboard.jar
    4. 将上述jar文件保存到服务器上(位置自定义,这里我以/usr/local/software为例)
  • 服务器上编写一个启动脚本(非必须,这里只是为了个人方便)
    1. 因为该启动默认不是后台运行的,所以此处我写了一个脚本来启动,并且日志保存到指定文件位置以及后台运行该进程
    2. 执行命令:vim  sentinel_start.sh,脚本内容如下(端口自定义,如8080,后面部分表示把日志存储到sentinel.log这个文件)
    3. #!/bin/sh

      java -Dserver.port=*** -Dcsp.sentinel.dashboard.server=localhost:*** -Dproject.name=sentinel-dashboard -jar /usr/local/software/sentinel-dashboard.jar &> sentinel.log

    4. 为脚本文件添加可执行权限:chmod +x sentinel_start.sh
    5. 执行脚本,并以后台服务的形式启动:sh sentinel_start.sh &
    6. 若需要关闭进程,可以通过命令(ps -ef | grep sentinel)查看进程号,然后执行命令:kill 进程号

控制台的访问

  • 通过上述步骤安装成功后,访问http://ip:port即可跳转到控制台
  • 效果如下

控制台的接入

经过上述步骤,Sentinel控制台已经安装完成,若要使应用接入Sentinel控制台,需要引入以下jar文件

<!-- 客户端接入sentinel控制台需要的jar -->
<dependency>
    <groupId>com.alibaba.csp</groupId>
    <artifactId>sentinel-transport-simple-http</artifactId>
    <version>${sentinel_version}</version>
</dependency>

之后在启动应用的时候带上vm参数(如下)即可:
prot1:想要指定的应用接口端口,默认是8719,可自定义
ip:控制台的ip
port2:控制台的端口
Dproject.name:自定义的应用名

-Djava.net.preferIPv4Stack=true
-Dcsp.sentinel.api.port=port1
-Dcsp.sentinel.dashboard.server=ip:port2
-Dproject.name=dubbo-service-demo

结语

因为后续使用Sentinel控制台是非必须、可以单独作为一方进行安装的应用,为了在后续实际使用Sentinel的时候可以接入该控制台更加方便的对数据进行监控,所以本文先介绍控制台的安装,后续会有关于dubbo添加Sentinel监控的例子,最后附上官方参考文档:https://github.com/alibaba/Sentinel/wiki/%E4%BB%8B%E7%BB%8D

发表评论

电子邮件地址不会被公开。