导航

  • 一、什么是Sentinel
    • 1.1 Sentinel 的优点
  • 二、整合 Sentinel 演示
  • 三、Sentinel控制台与微服务通信的原理
  • 四、Sentinel 流控演示

一、什么是Sentinel

Sentinel 是阿里开源的用于提供微服务架构容错方案的组件。它以流量作为切入点,从流量控制、熔断降级、系统负载保护 这三个主要纬度保证整体服务的稳定性。Sentinel 可分为两部分:核心库(Java 客户端)控制台(dashboard)。核心库不依赖任何框架或类库,运行于所有Java运行时上。控制台基于 Spring Boot 开发,打包后可直接运行。

1.1 Sentinel 的优点

  1. 丰富的应用场景:秒杀、消息削峰填谷、集群流量控制、实时熔断下游。
  2. 完备的实时监控:实时监控功能,例如通过控制台可以看到单节点秒级数据,甚至是500台服务器以下规模的集群汇总运行情况。
  3. 开源生态:提供开箱即用的,可与其他开源框架整合的模块,如 Spring Cloud、Dubbo、gRPC 等。
  4. SPI 扩展点:完善的 SPI 扩展接口,方便快速定制规则,适配动态数据源等。

二、整合 Sentinel 演示

Sentinel 分为两部分,整合 Sentinel 需要在上游微服务中添加相应依赖,例如 order 服务调用 product,就需要在 order 微服务中加入 sentinel starter。

  1. 添加依赖
    shop-order 微服务
        <dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-sentinel</artifactId></dependency>
  1. 添加测试接口
@Slf4j
@RestController
@RequestMapping("/order")
public class OrderController {@GetMapping("/message1")public String message1() {return "message1";}// ...
}
  1. 下载 dashboard 控制台
    https://github.com/alibaba/Sentinel/wiki/Dashboard

    下载后使用如下命令,执行jar包:
java -Dserver.port=8080 -Dcsp.sentinel.dashboard.server=localhost:8080 -Dproject.name=sentinel-dashboard -jar sentinel-dashboard-1.8.2.jar

启动成功后,打开浏览器,访问 localhost:8080 登录名密码都是 sentinel,就可以进入sentinel dashboard:

  1. 将 shop-order 微服务实例接入 sentinel
    这一步需要在 配置文件中加入 如下配置:
spring:cloud:sentinel:transport:dashboard: localhost:8080 # sentinel dashboard 服务ip和端口地址port:9999 # 与sentinel dashboard 传输数据的端口,随意指定一个未使用的端口即可
  1. 测试
    加好配置后,启动微服务 : shop-order ,由于sentinel 是懒加载的,必须调用一次接口之后才能显示在控制台。

三、Sentinel控制台与微服务通信的原理

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

四、Sentinel 流控演示

简单演示一下 Sentinel 的流控效果。

要求:实现对接口 /order/message1 的流控,限制每秒访问请求最多2个,超出的请求被拦截掉。

打开控制台“流控规则” 设置卡,添加流控规则:

新增后,尝试请求接口:


频繁刷新后,就会偶尔出现请求被流控调的返回信息,证明 sentinel 流控成功。

Spring Cloud Alibaba —— Sentinel 入门相关推荐

  1. Spring Cloud Alibaba - Sentinel入门案例(四)(热点规则 )

    Spring Cloud Alibaba - Sentinel入门案例(四)(热点规则 ) 回溯 什么是Sentinel? 正文 环境准备 简单使用 复杂使用 注意事项 回溯 什么是Sentinel? ...

  2. Spring Cloud Alibaba —— Sentinel 详细使用

    导航 引言 一.Sentinel的两个基本概念 二.流控规则 2.1 基本选项 2.2 高级选项 三.熔断(降级)规则 四.热点规则 五.授权规则(了解) 六.系统规则(了解) 七.自定义异常返回 八 ...

  3. Spring Cloud Alibaba基础入门,一周学会基操!

    Spring Cloud Alibaba基础入门,一周学会基操! 服务拆分: 1.不同微服务,不要重复开发相同业务 2.微服务数据独立,不要访问其它微服务的数据库 3.微服务可以将自己的业务暴露为接口 ...

  4. 开放下载 | 和 4000+Java 开发者共读《Spring Cloud Alibaba 从入门到实战》

    Spring Cloud Alibaba 脱胎于阿里中间件团队内部,经受了阿里多年海量业务场景的考验,是目前最成熟.功能最丰富也最有前景的 Spring Cloud 实现.相信在未来 Spring C ...

  5. spring cloud Alibaba Sentinel中文文档

    spring cloud Alibaba Sentinel中文文档 github中的中文文档:https://github.com/alibaba/Sentinel/wiki/介绍

  6. 【SpringCloud】Spring cloud Alibaba Sentinel 降级规则

    文章目录 1.概述 2.服务降级 2.1 RT 2.2 异常比例 2.3 异常数 1.概述 本章是接着上一章讲解:[SpringCloud]Spring cloud Alibaba Sentinel ...

  7. spring cloud alibaba sentinel 学习

    sentinel 学习 介绍(官方文档) 流量控制设计理念 熔断降级 Hystrix Sentinel 系统自适应保护 spring cloud alibaba sentinel sentinel.d ...

  8. 【技术手册】Java 开发者必备手册《Spring Cloud Alibaba 从入门到实战》

    Java 开发者必备手册<Spring Cloud Alibaba 从入门到实战> 简介 大咖寄语 目录 精彩导读 基础知识篇 分布式配置 服务注册与发现 分布式服务调用 服务熔断和限流 ...

  9. Spring Cloud Alibaba | Sentinel: 服务限流高级篇

    Spring Cloud Alibaba | Sentinel: 服务限流高级篇 Springboot: 2.1.6.RELEASE SpringCloud: Greenwich.SR1 如无特殊说明 ...

最新文章

  1. Bootstrap Paginator分页插件+ajax
  2. 教你保存在线视频文件
  3. 老BOJ 07 Fence Repair
  4. SAP Fiori应用中事务锁的实现 - Transaction Lock实现机制
  5. Android版添加phonegap---为APP添加CNZZ统计插件教程
  6. 常对象和常函数的关系 const
  7. 宁愿“大小周”、每天只写 200 行代码、月薪 8k-17k 人群再涨 | 揭晓中国开发者真实现状
  8. Juniper 防火墙session拥堵案例解决
  9. 构建一个完整的中文智能问答系统
  10. 查询oracle表空间有什么数据,oracle查询表空间使用情况与查询有哪些数据库实例在运行...
  11. 【是程序猿就干了这碗心灵鸡汤】我们这一代人的困惑
  12. java编程练习(开源):十种经典游戏
  13. 微服务架构设计模式 pdf_分享一份美团T9大牛总结的神仙微服务架构设计模式PDF...
  14. 主成分与因子分析异同_主成分和因子分析原理及比较
  15. 【0704】HL普及组模拟赛题解及反思
  16. 大数据是什么?1分钟了解大数据的概念!
  17. 黑马程序员--一个初中没毕业的苦逼,到8.5k的程序人生,感谢黑马
  18. ArcGIS:如何利用栅格数据进行路径网络分析-可达性分析?
  19. 《新一代视频压缩编码标准H.264/AVC》
  20. 【微信小程序】-- 使用 npm 包 - API Promise化(四十二)

热门文章

  1. Python日历模块| weekheader()方法与示例
  2. 开篇词:如何轻松获得 Offer
  3. Xamarin截取/删除emoji表情bug解决方案
  4. pomelo获取客户端IP
  5. Windows任务管理 连接用户登录信息 通用类[C#版]
  6. 1-3.Win10系统利用Pycharm社区版安装Django搭建一个简单Python Web项目的步骤之三
  7. 网页mysql命令大全_Mysql命令大全
  8. extern “C“解决链接问题
  9. fastai学习笔记——安装
  10. 自动提示_EXCEL2013版突然打不开,自动修复提示1907错误