背景分析
在我们日常生活中,经常会在淘宝,天猫,京东,拼多多等平台上参与商品的秒杀,抢购一级一些优惠活动,也会在节假日使用12306等手机APP抢火车票,高铁票,甚至有时候还需要帮助同事,朋友为他们家小孩投票,刷票,这些场景无一例外会引起服务器流量的保障,导致网页无法显示,APP反应慢,功能无法正常运转,甚至会引起整个网站的崩溃。
我们如何在这些流量变化无常的情况下,保证各种业务安全运营,系统在任何情况下都不会崩溃呢?我们可以在系统负载过高时,采用限流,降级和熔断,三种措施来保护系统,由此一些流量控制的中间件诞生,比如Sentinel。
Sentinel概述
Sentinel(分布式系统的流量防卫兵)是案例开源的一套用域服务容错的综合性解决方案。它以流量为切入点,从流量控制,熔断降级,系统负载保护等多个维度来保护服务的稳定性。
Sentinel 承接了阿里巴巴近 10 年的双十一大促流量的核心场景, 例如秒杀(即突发流量控制在系统容量可以承受的范围)、消息削峰填谷、集群流量控制、实时熔断下游不可用应用等。
Sentinel核心的分为两个部分:
核心库(java客户端):能够运行于所有的java运行环境,同时对Dubbo/Spring Cloud等框架也有较好的支持。
控制台(Dashboard):基于Spring Boot 开发,大伯啊后可以直接运行。
安装运行Sentinel服务
Sentinel 提供一个轻量级的控制台, 它提供机器发现、单机资源实时监控以及规则管理等功能,其控制台安装步骤如下:
一:官网地址https://github.com/alibaba/Sentinel/releases
二:下载jar包,(最好新建一个Sentinel目录),将jar包存储到这个文件夹中
三:在上面新建的Sentinel的目录,输入cmd,运行启动Sentinel
四:进入后执行下面的命令
java -Dserver.port=8180 -Dcsp.sentinel.dashboard.server=localhost:8180 -Dproject.name=sentinel-dashboard -jar sentinel-dashboard-1.8.0.jar
效果如下
访问Sentinel服务
第一步:通过浏览器访问
登录密码跟账号都是sentinel