一、Sentinel简介

Sentinel是阿里开源的项目,提供了流量控制、熔断降级、系统负载保护等多个维度来保障服务之间的稳定性。

二:Sentinel 功能和设计理念

流量控制
流量控制在网络传输中是一个常用的概念,它用于调整网络包的发送数据。然而,从系统稳定性角度考虑,在处理请求的速度上,也有非常多的讲究。任意时间到来的请求往往是随机不可控的,而系统的处理能力是有限的。我们需要根据系统的处理能力对流量进行控制。Sentinel 作为一个调配器,可以根据需要把随机的请求调整成合适的形状,如下图所示:

流量控制有以下几个角度:

资源的调用关系,例如资源的调用链路,资源和资源之间的关系;
运行指标,例如 QPS、线程池、系统负载等;
控制的效果,例如直接限流、冷启动、排队等。
Sentinel 的设计理念是让您自由选择控制的角度,并进行灵活组合,从而达到想要的效果。

熔断降级
什么是熔断降级
除了流量控制以外,降低调用链路中的不稳定资源也是 Sentinel 的使命之一。由于调用关系的复杂性,如果调用链路中的某个资源出现了不稳定,最终会导致请求发生堆积。这个问题和 Hystrix 里面描述的问题是一样的。

Sentinel 和 Hystrix 的原则是一致的: 当调用链路中某个资源出现不稳定,例如,表现为 timeout,异常比例升高的时候,则对这个资源的调用进行限制,并让请求快速失败,避免影响到其它的资源,最终产生雪崩的效果。

熔断降级设计理念
在限制的手段上,Sentinel 和 Hystrix 采取了完全不一样的方法。

Hystrix 通过线程池的方式,来对依赖(在我们的概念中对应资源)进行了隔离。这样做的好处是资源和资源之间做到了最彻底的隔离。缺点是除了增加了线程切换的成本,还需要预先给各个资源做线程池大小的分配。

Sentinel 对这个问题采取了两种手段:

通过并发线程数进行限制
和资源池隔离的方法不同,Sentinel 通过限制资源并发线程的数量,来减少不稳定资源对其它资源的影响。这样不但没有线程切换的损耗,也不需要您预先分配线程池的大小。当某个资源出现不稳定的情况下,例如响应时间变长,对资源的直接影响就是会造成线程数的逐步堆积。当线程数在特定资源上堆积到一定的数量之后,对该资源的新请求就会被拒绝。堆积的线程完成任务后才开始继续接收请求。

通过响应时间对资源进行降级
除了对并发线程数进行控制以外,Sentinel 还可以通过响应时间来快速降级不稳定的资源。当依赖的资源出现响应时间过长后,所有对该资源的访问都会被直接拒绝,直到过了指定的时间窗口之后才重新恢复。

系统负载保护
Sentinel 同时提供系统维度的自适应保护能力。防止雪崩,是系统防护中重要的一环。当系统负载较高的时候,如果还持续让请求进入,可能会导致系统崩溃,无法响应。在集群环境下,网络负载均衡会把本应这台机器承载的流量转发到其它的机器上去。如果这个时候其它的机器也处在一个边缘状态的时候,这个增加的流量就会导致这台机器也崩溃,最后导致整个集群不可用。

针对这个情况,Sentinel 提供了对应的保护机制,让系统的入口流量和系统的负载达到一个平衡,保证系统在能力范围之内处理最多的请求。

Sentinel 是如何工作的
Sentinel 的主要工作机制如下:

对主流框架提供适配或者显示的 API,来定义需要保护的资源,并提供设施对资源进行实时统计和调用链路分析。
根据预设的规则,结合对资源的实时统计信息,对流量进行控制。同时,Sentinel 提供开放的接口,方便您定义及改变规则。
Sentinel 提供实时的监控系统,方便您快速了解目前系统的状态。

三:安装步骤

一:下载jar包

二:控制台打开jar包所在目录

三:输入如下命令启动
java -Dserver.port=8080 -Dcsp.sentinel.dashboard.server=localhost:8080 -Dproject.name=sentinel-dashboard -jar sentinel-dashboard-1.8.0.jar

四:sentinel.dashboard就是一个springboot工程,可以看到项目已经在8080端口启

五:在浏览器中输入url:
localhost:8080后即可进入主页面。

六:登陆用户名和密码都是sentinel
登陆后可以看到

Sentinel介绍与使用相关推荐

  1. Sentinel介绍与使用 收藏起来

    点赞再看,养成习惯,微信搜索[牧小农]关注我获取更多资讯,风里雨里,小农等你,很高兴能够成为你的朋友. 项目源码地址:公众号回复 sentinel,即可免费获取源码 前言 在家休息的的时候,突然小勇打 ...

  2. 阿里开源限流、降级工具Sentinel介绍与使用

    Sentinel 是什么? 简言之,就是用于管理应用服务的流量控制.熔断降级的组件.当我们的服务有流量控制.熔断降级方面的需求时,可以考虑使用该组件. Sentinel: 分布式系统的流量防卫兵 随着 ...

  3. 【Sentinel(一)】Sentinel介绍与使用

    一.什么是Sentinel Sentinel是阿里开源的项目,提供了流量控制.熔断降级.系统负载保护等多个维度来保障服务之间的稳定性. 官网:https://github.com/alibaba/Se ...

  4. Sentinel介绍和Windows下安装Sentinel-dashboard

    Sentinel 是什么? 随着微服务的流行,服务和服务之间的稳定性变得越来越重要.Sentinel 以流量为切入点,从流量控制.熔断降级.系统负载保护等多个维度保护服务的稳定性. Sentinel ...

  5. 后端技术:阿里开源的接口限流神器Sentinel介绍

    Sentinel是阿里巴巴开源的限流器熔断器,并且带有可视化操作界面. 在日常开发中,限流功能时常被使用,用于对某些接口进行限流熔断,譬如限制单位时间内接口访问次数:或者按照某种规则进行限流,如限制i ...

  6. docker运行sentinel、Docker打包Sentinel 镜像、控制台环境搭建及使用介绍

    1.Sentinel 介绍 Sentinel 提供一个轻量级的开源控制台,它提供机器发现以及健康情况管理.监控(单机和集群),规则管理和推送的功能. Sentinel 控制台包含如下功能: 查看机器列 ...

  7. sentinel的介绍和使用

    (一).sentinel介绍 1.sentinel是什么? 随着微服务的流行,服务和服务之间的稳定性变得越来越重要.Sentinel 是面向分布式服务架构的流量控制组件,主要以流量为切入点,从限流.流 ...

  8. redis sentinel集群配置及haproxy配置

    ip分布情况: sentinel-1/redis 主 10.11.11.5 sentinel-2/redis 从 10.11.11.7 sentinel-3/redis 从 10.11.11.8 ha ...

  9. Sentinel实现限流,竟是如此的简单!

    点击上方蓝色"方志朋",选择"设为星标" 回复"666"获取独家整理的学习资料! 来源:https://tianyalei.blog.csd ...

最新文章

  1. 2022-2028年中国氟橡胶密封件行业市场研究及前瞻分析报告
  2. JavaScript 实现鼠标移动时实时获取其相对盒子的偏移
  3. CB Insights发布最新AI 100排名,包含100家最有前景的AI初创公司
  4. 微博收藏(机器学习探讨)(二)
  5. php中qq授权登录,ThinkPHP利用QQ互联实现网站第三方登录(QQ登录)
  6. Wordpress如何打开调试模式
  7. 客户要求ASP.NET Core API返回特定格式,怎么办?(续)
  8. 教你配置windows上的windbg,linux上的lldb,打入clr内部这一篇就够了
  9. python爬虫(8)--Xpath语法与lxml库
  10. HDU - 3790 最短路径问题
  11. gauscoor软件怎么用_影视解说月入近万元怎么做到的,没基础照样用软件制作
  12. 使用MS Test进行单元测试
  13. UCOIII时间片轮转调度
  14. Delphi教程推荐
  15. 直流电机驱动电路设计
  16. video 圆角 html,圆形视频和圆角视频的一种实现方式
  17. 不可思议!信用报告也能出错?
  18. Redis客户端Lettuce深度分析介绍
  19. html如何设置table的宽度,HTML怎么设置table宽度
  20. 判断页面是否在微信或者企业微信环境下

热门文章

  1. 德鲁克的《卓有成效的管理者》
  2. PCM接口详细介绍--TDM方式
  3. IplImage, CvMat, Mat 的关系和相互转换 再次理解 /(ㄒoㄒ)/~~
  4. C++STL总结笔记(一)—— 容器和容器适配器
  5. html 自动触发 事件,js自动触发事件自定义事件
  6. Python实现——二元线性回归(最小二乘法)
  7. 56、servlet3.0-与SpringMVC整合分析
  8. 【php】 自带的过滤机制
  9. Vue提供操作DOM的方法
  10. Javasript设计模式之链式调用