Sentinel(一):Sentinel 介绍和安装

一、Sentinel 介绍

1、什么是 Sentinel?

     一句话来说,Sentinel就是:分布式系统的流量卫兵(官网)。

     随着微服务的普及,服务调用的稳定性变得越来越重要。Sentinel以“流量”为切入点,在流量

     控制、断路、负载保护等多个领域开展工作,保障服务可靠性。

    Sentinel 中文官方文档:https://github.com/alibaba/Sentinel/wiki/%E4%BB%8B%E7%BB%8D

2、Sentinel 特点

      Sentinel 提供的功能特点如下图所示:

              

      Sentinel 主要特点如下:

      2.1、丰富的应用场景

               Sentinel 承接了阿里巴巴近 10 年的双十一大促流量的核心场景,例如秒杀(即突发流

               量控制在系统容量可以承受的范围)、消息削峰填谷、集群流量控制、实时熔断下游不

               可用应用等。

      2.2、完备的实时监控

              Sentinel 同时提供实时的监控功能。您可以在控制台中看到接入应用的单台机器秒级数

              据,甚至 500 台以下规模的集群的汇总运行情况。

      2.3、广泛的开源生态

               Sentinel 提供开箱即用的与其它开源框架/库的整合模块,例如与 Spring Cloud、

               Apache Dubbo、gRPC、Quarkus 的整合。您只需要引入相应的依赖并进行简单的配置

               即可快速地接入 Sentinel。同时 Sentinel 提供 Java/Go/C++ 等多语言的原生实现。

               如下图所示:

                   

      2.4、完善的SPI扩展机制

              Sentinel 提供简单易用、完善的 SPI 扩展接口。您可以通过实现扩展接口来快速地定制逻

              辑。例如定制规则管理、适配动态数据源等。

3、Sentinel 解决了什么问题?

3.1、分布式系统中面临的问题:

         复杂的体系结构中的应用程序可能有数十个依赖关系,每个依赖关系在某些时候将不可避免

         的失败,比如如下的例子中,当我们调用A、E、F、J、K这几个服务的时候如果其中一个服

         务出现问题会造成什么问题?

         其实就会出现整体系统效率全部下降,而且严重就会出现服务雪崩的问题!

         如下图所示业务:

               

3.2、什么是服务雪崩?

        多个微服务之间调用的时候,假设A调用B和C,B和C又调用其他的微服务,这就是所谓的

       扇出。如果扇出的某个链路上某个微服务调用的响应时间过程或者不可用,微服务A的调用

       就用占用越来越多的系统资源,从而引起系统崩溃,这也就是服务雪崩。其实就是服务的

        高可用遭到了破坏。

        对于高流量的应用来说,单一的后端依赖可能会导致服务器上的所有资源都在几秒钟内饱

        和。同时还有可能造成这些应用程序导致服务之间的延迟增加,备份列队,线程和其他的

        系统资源紧张,导致整个系统发生更多的级联故障。这些都表示需要对故障和延迟进行隔

        离和管理,以便单个依赖关系失败,不能取消整个应用程序或系统,所以通常发生了一个

        模块的某个实例失败后,这时候这个模块依然还会接受流量,然后这个有问题的模块还调

        用其他的模块,这样就会发生级联故障,或者叫做雪崩

3.3、Sentinel 是如何解决服务雪崩问题的?

         要解决服务雪崩问题的出现,就要在某个链路上的服务不可用用时,对整个链路服务做

         服务降级处理;

         Sentinel通过断路器实现熔断降级,保证在一个依赖出现问题的情况下,不会导致整体服务

         失败,避免级联故障(即雪崩问题出现),提高分布式系统的弹性。

         Sentinel断路器:

               断路器,它本身是一种开关装置,当某个服务单元发生故障之后,通过断路器的故障监

               控(类似于熔断保险丝),向调用方返回一个符合预期的、可处理的备选响应

              (FallBack),而不是长时间的等待或者抛出调用方法无法出的异常,这样就保证了

               服务调用方的不会被长时间、不必要的占用,从而避免了故障在分布式系统中蔓延

             (类似于病毒传染),从而避免了故障在系统中蔓延,乃至崩溃。

        

4、Sentinel 对比其他同类产品的优势

      对比与其他的产品而言,如:Hystrix,Sentinel 不需要我们自己手动搭建监控平台,而且它有

      一套类似于Nacos的Web界面,可以让我们进行更加细粒度的配置流控、速率、服务熔断、

      服务降级等,在使用上更简单方便。

5、Sentinel 组成

     Sentinel 由2部分组成,即:核心库(Java 客户端)与 控制台(Dashboard)

     1)核心库(Java 客户端)

           不依赖任何框架/库,能够运行于所有 Java 运行时环境,同时对 Dubbo / Spring Cloud 等框

           架也有较好的支持。

           在工作中,如果需要集成 Sentinel ,需要深入 Sentinel 的核心库;但如果时spring cloud 项

           目一般直接引入spring-cloud-starter-alibaba-sentinel,该依赖中包含了 Sentinel 核心库,

            如下图所示:

                    

           Sentinel 核心库如下所示:

<dependency><groupId>com.alibaba.csp</groupId><artifactId>sentinel-core</artifactId><version>版本</version>
</dependency>

     2)控制台(Dashboard)

           控制台(Dashboard)基于 SpringBoot开发,打包后可以直接运行,不需要额外的Tomcat

           等应用容器。

二、Sentinel 安装

       注意:这里的 Sentinel 安装 其实安装的是 Sentinel 控制台(Dashboard)

       下载地址:https://github.com/alibaba/Sentinel/releases

       由上边知道,Sentinel Dashboard 是基于spring boot 开发,所以我们下载编译好的

       jar 包,直接运行就行了。如下图所示:

              

       注意:下载时注意看下你所下载的版本对JDK的版本的要求,JDK版本不一致可能启动报错

2、运行 Sentinel Dashboard

     Sentinel Dashboard 默认监听端口是 8080,我们可以在启动时使用参数 -Dserver.port 来指定

     其所监听的端口,如:-Dserver.port=8090(指定 Dashboard  监听端口是 8090);

     Sentinel Dashboard控制台默认登录用户和密码都是sentinel

     运行命令:java -Dserver.port=8090 -jar sentinel-dashboard-1.8.8.jar 来启动 Dashboard;

    如下图所示:

          

     Sentinel Dashboard 启动成功后在浏览器访问http://localhost:8090,并使用默认用户 sentinel

     登录,如下图所示:

               

               

             

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/news/909944.shtml
繁体地址,请注明出处:http://hk.pswp.cn/news/909944.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

pyspark 初试

1、安装jdk sudo apt-get install openjdk-17-jdk 2、安装spark curl -o spark.tgz https://mirrors.tuna.tsinghua.edu.cn/apache/spark/spark-4.0.0/spark-4.0.0-bin-hadoop3.tgz tar -xvf spark.tgz mv spark-4.0.0-bin-hadoop3 /opt/spark修改 /etc/profile 添加 exp…

深入解析select模型:FD_SET机制与1024限制的终极指南

在Linux网络编程中&#xff0c;select函数是最经典的I/O多路复用技术之一&#xff0c;但其核心机制FD_SET的1024限制常成为高并发系统的瓶颈。本文将深入剖析FD_SET实现原理&#xff0c;并提供突破限制的实战方案。 一、FD_SET底层结构解析 FD_SET本质是固定长度的位图数组&am…

C函数基础.go

前言&#xff1a; 在Go语言中&#xff0c;函数是构成程序的基本模块&#xff0c;它封装了一段具有特定功能的代码&#xff0c;使得代码更易读&#xff0c;更易维护和重用。熟练掌握函数的定义、调用以及相关特性是成为Go语言开发者的必经之路。 目录 函数定义&#xff1a;给代…

什么是池化

池化是深度学习中用于降低数据维度、提取核心特征的一种操作&#xff0c;主要应用于卷积神经网络&#xff08;CNN&#xff09;。其核心思想是通过对局部区域进行聚合统计&#xff08;如取最大值、平均值&#xff09;&#xff0c;保留关键信息的同时减少计算量。 池化的作用 降维…

C++ 性能分析工具:Valgrind 与 perf

在 C 开发中&#xff0c;性能优化是提升软件质量的关键环节。内存泄漏和 CPU 资源消耗是最常见的性能瓶颈&#xff0c;而 Valgrind 和 perf 作为专业的性能分析工具&#xff0c;能帮助开发者精准定位这些问题。下面将从工具原理、使用方法、实战案例等方面进行详细介绍。 一、…

ABP VNext + MongoDB 数据存储:多模型支持与 NoSQL 扩展

&#x1f680; ABP VNext MongoDB 数据存储&#xff1a;多模型支持与 NoSQL 扩展&#xff08;生产级实践&#xff09; 目录 &#x1f680; ABP VNext MongoDB 数据存储&#xff1a;多模型支持与 NoSQL 扩展&#xff08;生产级实践&#xff09;&#x1f3af; 引言&#x1f9f0…

Cursor Rules 的核心定位与作用 DevOps是

Cursor Rules 是 AI 编程工具 Cursor IDE 中的核心功能&#xff0c;用于约束 AI 生成代码的行为&#xff0c;确保其符合项目规范、编码风格或特定技术需求。它本质上是一套持久化、可复用的指令集&#xff0c;会动态插入到 AI 模型的上下文提示中&#xff0c;指导其生成代码的逻…

Qt事件处理机制

事件的概念 在Qt中&#xff0c;以事件驱动UI工具集&#xff0c;包括信号和槽都依赖于Qt的事件处理机制。通常事件是由窗口系统或Qt自身产生的&#xff0c;用以响应所发生的各类事情。如&#xff1a;用户按下并释放键盘或鼠标、窗口缩放后重绘、定时器到时等。如下图&#xff1…

【慧游鲁博】【11】小程序端·游览画卷修改·支持图片url格式·结合图床上传和加载·数据对接

文章目录 需求修改细节前端主要修改点说明&#xff1a;前端传递格式 后端ArtifactItem 类&#xff1a;ScrollServiceImpl 类&#xff1a;修改 InfoPanel 结构重构 ScrollHorizontalRollComposer修改后的 ScrollHorizontalRollComposer移除冗余代码修改总结 数据流图片格式兼容性…

攻克SQL审核“最后堡垒”!PawSQL首发T-SQL存储过程深度优化引擎

为什么存储过程审核那么难&#xff1f; 存储过程将数据操作逻辑固化在数据库层&#xff0c;一次编译、多次执行&#xff0c;既能大幅提升性能&#xff0c;也能通过权限隔离增强安全。然而&#xff0c;正因其逻辑复杂、分支众多&#xff0c;存储过程内部的 SQL 审核与优化常常成…

计算机网络零基础完全指南

目录 🌐 什么是计算机网络 生活中的类比 计算机网络的本质 网络的发展历程 🏠 网络IP详解(重点) 1. IP地址是什么? 生活例子:IP地址就像门牌号 IP地址的格式 IP地址的二进制表示 2. IP地址的分类详解 A类地址(大型网络) B类地址(中型网络) C类地址(小…

DL___线性神经网络

1&#xff09;回归&#xff08;regression&#xff09;是能为一个或多个自变量与因变量之间关系建模的一类方法。 在自然科学和社会科学领域&#xff0c;回归经常用来表示输入和输出之间的关系。 2&#xff09;一般回归是和预测有关&#xff0c;比如预测价格(房屋&#xff0c;…

WSL2安装与使用(USB、GPU、虚拟机、图形界面)

文章目录 前言WSL2安装&#xff08;手动安装&#xff09;WSL2基础使用VS Code与WSL2配合使用连接USB设备WSL2中使用GPU&#xff08;RTX5060Ti 16G&#xff09;与虚拟机兼容使用&#xff08;Virtual Box&#xff09;图形与桌面环境WSL消失&#xff08;灾难性故障&#xff09;问题…

uni-app项目实战笔记16--实现头部导航栏效果

先来看效果&#xff1a; 要求&#xff1a;顶部导航栏要始终固定在上方&#xff0c;不随页面上下拖动而消失。 代码实现&#xff1a; 1.定义一个自定义导航栏组件&#xff1a;custom-nav-bar.vue&#xff0c;并写入如下代码&#xff1a; <template><view class"…

web3.js 核心包及子模块

. 核心包 (web3) 功能:提供基础连接、工具函数和核心功能。 包含子模块: web3.eth - 以太坊区块链交互 web3.utils - 辅助工具函数 web3.shh - Whisper 协议(已废弃) web3.bzz - Swarm 去中心化存储(已废弃) web3.net - 网络相关功能 web3.contract - 智能合约交互 web3.…

训练检测之前的视频抽帧

接下来安装pytorch Previous PyTorch Versions 视频抽帧 import cv2def extract_frames(video_path, output_folder, frame_rate1):"""从视频中抽取帧。:param video_path: 视频文件的路径:param output_folder: 存储帧的文件夹路径:param frame_rate: 抽取的…

智能家居HA篇 二、配置Home Assistant并实现外部访问

智能家居HA篇 一、Win10 VM虚拟机安装 Home Assistant 手把手教学 二、通过Cpolar配置Home Assistant并实现外部访问 文章目录 智能家居HA篇前言一、内网穿透工具&#xff08;cpolar&#xff09;二、映射HA端口1.访问cpolar仪表2.创建账号并登录3.创建隧道 三、HA设置及公网访…

day09——Java基础项目(ATM系统)

文章目录 Java项目实战&#xff1a;手把手开发ATM银行系统&#xff08;附完整源码&#xff09;一、系统架构设计1. 三层架构模型2. 核心数据结构 二、核心功能实现1. 开户功能&#xff08;含唯一卡号生成&#xff09;2. 登录安全验证3. 存取款业务4. 安全转账实现 三、账户安全…

计算机网络:(五)信道复用技术,数字传输系统,宽带接入技术

计算机网络&#xff1a;&#xff08;五&#xff09;信道复用技术&#xff0c;数字传输系统&#xff0c;宽带接入技术 前言一、信道复用技术1. 为什么需要复用技术&#xff1f;2. 频分复用&#xff08;FDM&#xff09;3. 时分复用&#xff08;TDM&#xff09;4. 统计时分复用&am…

【期末总结】计算机网络

【期末总结】计算机网络 参考链接&#xff1a;计算机网络知识点全面总结&#xff08;有这一篇就够了&#xff01;&#xff01;&#xff01;&#xff09;-CSDN博客 一.概述 1.1 计算机网络的分类 按照网络的作用范围&#xff1a;广域网&#xff08;WAN&#xff09;、城域网&a…