【Spring Cloud】服务容错中间件Sentinel入门

文章目录

  • 什么是 Sentinel
      • Sentinel 具有以下特征:
      • Sentinel分为两个部分:
  • 安装 Sentinel 控制台
    • 下载jar包,解压到文件夹
    • 启动控制台
    • 访问
    • 了解控制台的使用原理
  • 微服务集成 Sentinel
    • 添加依赖
    • 增加配置
    • 测试用例编写
    • 启动程序
  • 实现接口限流
  • 总结

欢迎来到阿Q社区
https://bbs.csdn.net/topics/617897123

什么是 Sentinel

Sentinel(分布式系统的流量防卫兵)是阿里开源的一套用于服务容错的综合性解决方案。它以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度来保护服务的稳定性。

Sentinel 具有以下特征:

  • 丰富的应用场景:Sentinel 承接了阿里巴巴近10年的双十一大促流量的核心场景,例如秒杀(即突发流量控制在系统容量可以承受的范围)、消息削峰填谷、集群流量控制、实时熔断下游不可用应用等。
  • 完备的实时监控:Sentinel提供了实时的监控功能。通过控制台可以看到接入应用的单台机器秒级数据,甚至500台以下规模的集群的汇总运行情况。
  • 广泛的开源生态:Sentinel 提供开箱即用的与其它开源框架/库的整合模块,例如与SpringCloud、Dubbo、gRPC的整合。只需要引入相应的依赖并进行简单的配置即可快速地接入Sentinel。
  • 完善的SPI扩展点:SentineI 提供简单易用、完善的SPI扩展接口。您可以通过实现扩展接口来快速地定制逻辑。例如定制规则管理、适配动态数据源等。

Sentinel分为两个部分:

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

安装 Sentinel 控制台

Sentinel 提供一个轻量级的控制台,它提供机器发现、单机资源实时监控以及规则管理等功能。

下载jar包,解压到文件夹

https://github.com/alibaba/Sentinel/releases

启动控制台

#直接使用jar命令启动项目(控制台本身是一个Spring Boot项目)
java -Dserver.port=8080 -Dcsp.sentinel.dashboard.server=localhost:8080 -Dproject.name=sentinel-dashboard -jar sentinel-dashboard-1.8.7.jar

在这里插入图片描述

访问

通过浏览器访问localhost:8080进入控制台

在这里插入图片描述
默认用户名密码是sentinel/sentinel,输入之后登录成功

在这里插入图片描述

了解控制台的使用原理

SentineI 的控制台其实就是一个 SpringBoot 编写的程序。

我们需要将我们的微服务程序注册到控制台上,即在微服务中指定控制台的地址,并且还要开启一个跟控制台传递数据的端口,控制台也可以通过此端口调用微服务中的监控程序获取微服务的各种信息。

在这里插入图片描述

微服务集成 Sentinel

微服务集成 Sentinel 非常简单,只需要加入 Sentinel 的依赖即可

添加依赖

在 pom. xml 中加入下面依赖

<dependency>   <groupId>com.alibaba.cloud</groupId>   <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>   <version>2.1.0.RELEASE</version>
</dependency>

增加配置

修改 shop-order,在里面加入 sentinel 有关控制台的配置

spring:cloud:sentinel:transport:port: 9999 #跟控制台交流的端口,随意指定一个未使用的端口即可dashboard: localhost:8080  #指定控制台服务的地址

测试用例编写

编写一个 Controller 测试使用

@RestController
@RequestMapping("/order")
@Slf4j
public class OrderController3 {@RequestMapping("/message1")public String message1() {return"message1";}@RequestMapping("/message2")public String message2() {return"message2";}}

启动程序

程序启动之后,访问127.0.0.1:8091/order/message1,发现在 sentinel 管理页面看到确实有监控 shop-order 微服务

在这里插入图片描述

实现接口限流

通过控制台为 message1 添加一个流控规则

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

通过控制台快速频繁访问,观察效果,发现限流成功。

在这里插入图片描述

总结

到这儿,服务容错中间件 Sentinel 我们算是基本入门了。下一篇将为大家带来容错组件 Sentinel 的进阶文章,敬请期待吧!

后续的文章,我们将继续完善我们的微服务系统,集成更多的Alibaba组件。想要了解更多JAVA后端知识,请点击文末名片与我交流吧。留下您的一键三连,让我们在这个寒冷的东西互相温暖吧!

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

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

相关文章

HTML转EXE工具(HTML App Build)永久免费版:24.4.9.0

最新版本的HTML2EXE即将发布了。自从去年发布了HTML2EXE之后&#xff0c;我就正式上班了&#xff0c;一直忙于工作&#xff0c;实在没有时间更新&#xff08;上班时间不能做&#xff09;&#xff0c;很多网友下载使用&#xff0c;反应很好&#xff0c;提出了一些改进的建议&…

感知定位篇之机器人感知定位元件概述(上)

欢迎关注微信公众号 “四足机器人研习社”&#xff0c;本公众号的文章和资料和四足机器人相关&#xff0c;包括行业的经典教材、行业资料手册&#xff0c;同时会涉及到职业知识学习及思考、行业发展、学习方法等一些方面的文章。 目录 |0.概述 |1.常用传感元件 1.1视觉传感器…

750万人受影响,印度电子巨头boAt重大数据泄露事件

近日&#xff0c;印度消费电子巨头boAt遭遇重大数据泄露事件&#xff0c;超过750万客户的个人数据遭到泄露&#xff0c;泄露的个人数据包括姓名、地址、联系电话、电子邮件 ID 和客户 ID 以及其他敏感信息&#xff0c;目前这些泄露数据正在暗网上流传。 boAt Lifestyle数据库被…

【数据结构】考研真题攻克与重点知识点剖析 - 第 8 篇:排序

前言 本文基础知识部分来自于b站&#xff1a;分享笔记的好人儿的思维导图与王道考研课程&#xff0c;感谢大佬的开源精神&#xff0c;习题来自老师划的重点以及考研真题。此前我尝试了完全使用Python或是结合大语言模型对考研真题进行数据清洗与可视化分析&#xff0c;本人技术…

Android 包命名规范

Android包目录的命名规范会直接影响到整个APP攻城后期的开发效率和拓展性。 常用两种命名方式&#xff1a;PBL&#xff08;package by layer ) 和PBF(pakcage by Feature) layer 英/ˈleɪə(r)/ 翻译&#xff1a;层 feature 英/ˈfiːtʃə(r)/ 翻译&#xff1a;特色 1 Pac…

【吊打面试官系列】Java高并发篇 - 在 Java 中 Executor 和 Executors 的区别?

大家好&#xff0c;我是锋哥。今天分享关于 【在 Java 中 Executor 和 Executors 的区别&#xff1f;】面试题&#xff0c;希望对大家有帮助&#xff1b; 在 Java 中 Executor 和 Executors 的区别&#xff1f; Executors 工具类的不同方法按照我们的需求创建了不同的线程池&am…

探索未来的旋律:AI生成音乐的魔法(附GPT镜像站大全)

在数字化时代的浪潮中&#xff0c;人工智能&#xff08;AI&#xff09;已经触及了我们生活的方方面面&#xff0c;从自动驾驶汽车到智能家居系统&#xff0c;再到高度个性化的推荐算法。然而&#xff0c;AI的魔法并不止步于此。近年来&#xff0c;AI在艺术和创造性领域的应用也…

#Arduino(代码记录)

设备&#xff1a;esp32c3 IDE:Arduino 实验&#xff1a; &#xff08;1&#xff09;获取网络时间&#xff0c;b站粉丝数和b站关注数&#xff0c;心知天气 #include "HTTPClient.h" #include "WiFi.h" #include "ArduinoJson.h" char *ssid &qu…

【保姆级讲解PyCharm安装教程】

&#x1f3a5;博主&#xff1a;程序员不想YY啊 &#x1f4ab;CSDN优质创作者&#xff0c;CSDN实力新星&#xff0c;CSDN博客专家 &#x1f917;点赞&#x1f388;收藏⭐再看&#x1f4ab;养成习惯 ✨希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出…

硬盘删除的文件怎么恢复?恢复方法大公开!

“硬盘删除的文件还有机会恢复吗&#xff1f;刚刚清理电脑垃圾的时候不小心删除了很多重要的文件&#xff0c;有什么方法可以有效恢复这些文件吗&#xff1f;” 在数据时代&#xff0c;我们会将很多重要的文件都保存在电脑上&#xff0c;如果我们清理了电脑上的文件&#xff0c…

基于分布式鲁棒性的多微网电氢混合储能容量优化配置——1

Optimal configuration of multi microgrid electric hydrogen hybrid energy storage capacity based on distributed robustness A B S T R A C T 储能与微电网相结合是解决分布式风能、太阳能资源不确定性、降低其对大电网安全稳定影响的重要技术路径。随着分布式风电和太阳…

Git分布式版本控制系统——Git常用命令(一)

一、获取Git仓库--在本地初始化仓库 执行步骤如下&#xff1a; 1.在任意目录下创建一个空目录&#xff08;例如GitRepos&#xff09;作为我们的本地仓库 2.进入这个目录中&#xff0c;点击右键打开Git bash窗口 3.执行命令git init 如果在当前目录中看到.git文件夹&#x…

node后端上传文件到本地指定文件夹

实现 第一步&#xff0c;引入依赖 const fs require(fs) const multer require(multer) 第二步&#xff0c;先设置一个上传守卫&#xff0c;用于初步拦截异常请求 /*** 上传守卫* param req* param res* param next*/ function uploadFile (req, res, next) {// dest 值…

Python异常处理try与except跳过报错使得程序继续运行的方法

本文介绍基于Python语言的异常处理模块try与except&#xff0c;对代码中出现的报错加以跳过&#xff0c;从而使得程序继续运行的方法。 在Python语言中&#xff0c;try语句块用于包含可能引发异常的代码&#xff0c;而except语句块则用于定义在出现异常时要执行的代码。其基本结…

Echarts多曲线数值与Y周刻度不符合、Echarts tooltip文字设置左对齐、Echarts折线图背景区间色自定义

Echarts多曲线数值与Y周刻度不符合: 问题描述&#xff1a; 在展示多曲线图表的时候&#xff0c;发现图表曲线数值与Y轴刻度对应不上 问题解决方式&#xff1a; 查看下Echarts的配置option中的seriess属性(多曲线的时候这个属性应该是一个数组)&#xff0c;然后查看数组中的每个…

信用卡客户特征分析

分析思路 信用卡服务提供了一种方便的贷款方式&#xff0c;允许用户事先消费&#xff0c;之后再支付费用。对银行而言&#xff0c;这种服务既有较高的利润潜力&#xff0c;同时也伴随着用户可能不履行还款义务的风险。本⽂是基于2005年台湾信⽤卡客户数据&#xff0c;探究信⽤…

内含教程丨最高可降低 16 倍成本,ComfyUI Stable Cascade 教程已上线,一键部署!

2024 年 2 月&#xff0c;OpenAI 又一次站在了镁光灯下&#xff0c;Sora 横空出世并引发热烈讨论&#xff0c;「文生视频」的热潮被那段 60 秒的展示视频再度推高&#xff0c;也使得很多人忽视了其图片生成能力。 更加值得一提的是&#xff0c;其实就在 Sora 发布前不久&#…

vue3 +Taro 页面实现scroll-view 分页功能

需求 现在分页列表 后端只给你一个分页的数据列表 没有总页数 没有当前的分页 页数 只有这么一个list 、、、 如何去分页 我这使用的是scroll-view 组件 滑动到底部的事件 根据你当前设定的每页的数据数量和后端返回给你的数据列表数量 当某一次分页 两个数量不相等了以后 就…

SpringBoot第一个hello world项目

文章目录 前言一、Spring Boot是什么&#xff1f;二、使用步骤1. 创建项目2.书写测试 总结 前言 提示&#xff1a;这里可以添加本文要记录的大概内容&#xff1a; 例如&#xff1a;随着人工智能的不断发展&#xff0c;机器学习这门技术也越来越重要&#xff0c;很多人都开启了…

javaWeb车辆管理系统设计与实现

摘 要 随着经济的日益增长,车辆作为最重要的交通工具,在企事业单位中得以普及,单位的车辆数目已经远远不止简单的几辆,与此同时就产生了车辆资源的合理分配使用问题。 企业车辆管理系统运用现代化的计算机管理手段&#xff0c;不但可以对车辆的使用进行合理的管理&#xff0c;…