Sentinel 是阿里中间件团队开源的,面向分布式服务架构的轻量级流量控制产品,主要以流量为切入点,
从流量控制、熔断降级、系统负载保护等多个维度来帮助用户保护服务的稳定性。
Sentinel分为两个部分:客户端以及控制台
控制台用于管理限流,熔断规则的发布与监控
客户端则用于接收规则,并执行相关规则
[root@oracle ~]# cd /usr/local/src
[root@oracle src]# ll
[root@oracle src]# wget https://github.com/alibaba/Sentinel/releases/download/1.6.2/sentinel-dashboard-1.6.2.jar --no-check-certificate
首先写两个脚本,一个用来启动,一个用来停止
[root@oracle ~]# mkdir /usr/local/sentinel
[root@oracle ~]# cd /usr/local/sentinel
[root@oracle sentinel]# mkdir bin
[root@oracle sentinel]# mkdir logs
将jar移动到文件夹 /usr/local/sentinel中
[root@oracle /]# mv /usr/local/src/sentinel-dashboard-1.6.2.jar /usr/local/sentinel
[root@oracle /]# cd /usr/local/sentinel/bin
[root@oracle bin]# vi startup.sh
#!/bin/bash
nohup java -jar /usr/local/sentinel/sentinel-dashboard-1.6.2.jar > /usr/local/sentinel/logs/sentinel.log 2>&1 &
echo $! > /var/run/sentinel.pid
[root@oracle bin]# chmod 777 /usr/local/sentinel/bin/startup.sh
编写停止脚本
shutdown.sh
[root@oracle bin]# vi shutdown.sh
加入以下内容:
#!/bin/sh
kill -9 `cat /var/run/sentinel.pid`
[root@oracle bin]# chmod 777 /usr/local/sentinel/bin/shutdown.sh
编辑文件/usr/lib/systemd/system/sentinel.service
[root@oracle bin]# vi /usr/lib/systemd/system/sentinel.service
加入以下内容:
[Unit]
Description=service for sentinel
After=syslog.target network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
ExecStart=/usr/local/sentinel/bin/startup.sh
ExecStop=/usr/local/sentinel/bin/shutdown.sh
PrivateTmp=true
[Install]
WantedBy=multi-user.target
systemctl daemon-reload
systemctl enable sentinel.service
启动sentinel服务
systemctl start sentinel.service
设置开机自启动
systemctl enable sentinel.service
停止开机自启动
systemctl disable sentinel.service
查看服务当前状态
systemctl status sentinel.service
重新启动服务
systemctl restart sentinel.service
查看所有已启动的服务
systemctl list-units --type=service
这一步必不可少,要放开sentinel默认端口8080
[root@oracle ~]# sudo vi /etc/sysconfig/iptables
添加参数
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT
[root@oracle ~]# sudo systemctl restart iptables #重启生效
浏览器登陆:http://192.168.8.129:8080
注意:只有1.6.0及以上版本,才有这个简单的登录页面。默认用户名和密码都是sentinel。对于用户登录的相关配置可以在启动命令中增加下面的参数来进行配置:
-Dsentinel.dashboard.auth.username=sentinel: 用于指定控制台的登录用户名为 sentinel;
-Dsentinel.dashboard.auth.password=123456: 用于指定控制台的登录密码为 123456;如果省略这两个参数,默认用户和密码均为 sentinel
-Dserver.servlet.session.timeout=7200: 用于指定 Spring Boot 服务端 session 的过期时间,如 7200 表示 7200 秒;60m 表示 60 分钟,默认为 30 分钟;