官网

https://sentinelguard.io/

服务雪崩

微服务中各个服务之间通过http/rpc互相调用,假设其中1个服务因为网络或自身原因出现问题,调用这个服务就会出现线程堵塞,此时若有大量请求出现,线程资源会因为堵塞而耗尽,导致服务调用方瘫痪,最后引起其他服务也相继瘫痪,这就是服务雪崩。

为了解决这个问题,业界提出了熔断器模型。阿里巴巴开源的Sentinel,就实现了熔断器模型。

Sentinel是什么

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

Sentinel 具有以下特征:

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

Sentinel 分为两个部分:

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

Sentinel 控制台

下载控制台

打开Sentinel Release页面下载jar包,我这里选择的版本是1.8.0。下载完毕后,放到 /usr/local/sentinel

启动控制台

  • 端口号可以根据实际情况自己更改,这里用的是8888
  • 如果sentinel装在另外的服务器,localhost需要改成实际IP地址
  • 可以写个sh脚本文件,方便下次启动
java -Dserver.port=8888 -Dcsp.sentinel.dashboard.server=localhost:8888 -Dproject.name=sentinel-dashboard -jar sentinel-dashboard-1.8.0.jar
  • 启动成功后,浏览器打开8888端口地址,账号密码默认都是sentinel

Spring Cloud Alibaba接入Sentinel

对 consumer 服务都加上 sentinel 依赖

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

配置sentinel

  • 增加 spring.cloud.sentinel.transport.dashboard
  • 增加 feign.sentinel.enabled
spring:application:name: test-consumercloud:nacos:discovery:server-addr: 192.168.25.131:8848sentinel:transport:dashboard: 192.168.25.131:8888server:port: 8020feign:sentinel:enabled: truemanagement:endpoints:web:exposure:include: "*"

关闭 provider,启动consumer,这时候调用接口会超时。
因此,我们需要给consumer服务增加Fallback服务,作用是调用外部接口失败时,缺省返回指定的数据

  • 对consumer服务增加HelloServiceFallback,放在包com.train.alibaba.consumer.service.fallback
@Component
public class HelloServiceFallback implements HelloService {@Overridepublic String echo(String name) {return "请检查网络是否正常";}
}

继续保持provider关闭状态,重新调用consumer,返回结果如下

刷新sentinel控制台,会发现多了个test-consumer,里面的数据就是consumer服务的访问流量数据

6.Spring Cloud Alibaba教程:Sentinel流量防卫兵的介绍与基本使用相关推荐

  1. SpringCloud Alibaba之 Sentinel流量防卫兵

    文章目录 Sentinel 流量防卫兵 一.安装与部署

  2. Spring Cloud Alibaba:Sentinel 流控规则

    文章目录 1. 前言 2. 阈值类型 2.1 QPS 2.2 线程数 3. 流控模式 3.1 直接 3.2 关联 3.3 链路 4. 流控效果 4.1 快速失败 4.2 Warm Up 4.3 排队等 ...

  3. 1.Spring Cloud Alibaba教程:简介

    概述 2018年10月31日,SpringCloudAlibaba 正式入驻 SpringCloud 官方孵化器,并在 Maven 中央库发布第一个版本. Spring Cloud for Aliba ...

  4. Spring Cloud Alibaba:Sentinel实现熔断与限流

    摘要 Spring Cloud Alibaba 致力于提供微服务开发的一站式解决方案,Sentinel 作为其核心组件之一,具有熔断与限流等一系列服务保护功能,本文将对其用法进行详细介绍. Senti ...

  5. Spring Cloud Alibaba教程:使用Nacos作为服务注册中心

    点击上方"方志朋",选择"置顶公众号" 技术文章第一时间送达! 什么是Nacos? Nacos 致力于帮助您发现.配置和管理微服务.Nacos 提供了一组简单易 ...

  6. 7.Spring Cloud Alibaba教程:整合Dubbo实现RPC调用

    概述 Apache Dubbo 是一款高性能的.基于Java的开源RPC框架,它提供了以下特性: 基于接口的远程方法调用 智能负载均衡 服务自动注册和发现 高可扩展性 运行期流量调度 可视化的服务治理 ...

  7. spring cloud alibaba系列sentinel规则持久化

    "秋来相顾尚飘蓬,未就丹砂愧葛洪. 痛饮狂歌空度日,飞扬跋扈为谁雄" 总结 我上一篇:spring cloud alibaba sentinel 介绍的sentinel可以定义很多 ...

  8. 8.Spring Cloud Alibaba教程:整合Seata分布式事务

    概述 Seata 是一款开源的分布式事务解决方案,致力于提供高性能和简单易用的分布式事务服务. 更多的介绍可以参考官方文档:Seata快速入门 本篇主要是介绍Spring Cloud Alibaba ...

  9. 3.Spring Cloud Alibaba教程:Nacos服务注册与发现

    概要 官网地址:Nacos官网和帮助文档 Nacos安装:Linux安装Nacos1.3.1(还没安装的先看这篇文章安装) Nacos主要作用:服务注册与发现.配置管理 本篇主要介绍的是服务注册与发现 ...

最新文章

  1. Qt Creator将应用程序部署到QNX Neutrino设备
  2. (转载)Linux僵死进程的产生与避免
  3. 如何进行.NET高效开发
  4. 将PostgreSQL数据库扩展到每个月12亿条记录的经验教训
  5. AOL CEO 谈雅虎收购案及后续计划
  6. 20145202马超《网络对抗》Exp8 Web基础
  7. 怎么看mmdetection版本_如何评价商汤开源的 mm-detection 检测库?
  8. html转pdf乱码问题,java html 转 pdf 中文乱码
  9. 用Flash CS4打开fla文件提示“意外的格式”的解决方法
  10. 客服系统源代码下载-h5手机端在线客服代码-在线聊天系统源代码(前端vue开发,后台go语言开发)
  11. C++ +GDAL计算遥感影像植被指数
  12. linux 查看gnu,查看GNU/Linux信息
  13. OSG OIT 顺序无关透明绘制(PPLL_OIT, WB_OIT) 实现及注意事项
  14. 常见的注册表修改大全
  15. 网络入门-IP地址规划
  16. java毕业设计m和vue的酒店管理系统2021(附源码、数据库)
  17. Go分享好的github插件和项目
  18. scribd.com文档下载
  19. Windows系统中LOL登陆错误出现的服务器未响应优化教程
  20. 【微信】h5跳转微信小程序

热门文章

  1. SAP生产订单状态详解
  2. 如何确定固定资产入账价值
  3. AIX 下磁盘 I/O 性能分析
  4. 如何通过 BAPI 更新 PO 采购订单中的 confirmation tab 中的 confirmation date.
  5. 华为云FusionInsight+永洪BI共建政企用数之道,普惠千行百业
  6. 微盟616助力品牌潮出圈背后,智慧零售迈入广阔收获期
  7. 颠覆智能床垫技术,喜临门开启“深睡时代”
  8. html复选框读取数据库,checkbox 读取数据库
  9. python 文本转json_在python中将文本文件转换为json
  10. pandas读取html并排序,使用pandas怎么实现按照列的值进行排序