热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

springcloudalibaba.2.2.xSentinel分布式系统的流量防卫兵的简介以及环境搭建

spring-cloud-alibaba.2.2.xSentinel分布式系统的流量防卫兵的简介以及环境搭建文章目录spring-cloud-alibaba.2.2.xSentin

spring-cloud-alibaba.2.2.x Sentinel分布式系统的流量防卫兵的简介以及环境搭建


文章目录

  • spring-cloud-alibaba.2.2.x Sentinel分布式系统的流量防卫兵的简介以及环境搭建
    • 1、Sentinel简介:分布式系统的流量防卫兵
    • 2、搭建sentinel的控制台服务
      • 2.1、环境准备
      • 2.2、启动服务器
    • 3.badger-spring-cloud-alibaba-sentinel sentinel服务的项目搭建
      • 3.1、maven的pom文件如下,就是一个普通的web的springboot项目,加入了`sentinel`的包
      • 3.2、yaml配置文件如下,基础配置
      • 3.3、主启动类、以及业务类
    • 4、项目启动,测试使用
      • 4.1、项目启动
      • 4.2、添加限流规则
      • 4.3、测试限流规则
      • 4.4、停止应用再启动


1、Sentinel简介:分布式系统的流量防卫兵

详细见github的文档https://github.com/alibaba/Sentinel/wiki/%E4%BB%8B%E7%BB%8D

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

Sentinel 具有以下特征:


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

Sentinel 的主要特性:


3.badger-spring-cloud-alibaba-sentinel sentinel服务的项目搭建


3.1、maven的pom文件如下,就是一个普通的web的springboot项目,加入了sentinel的包

这里主要演示sentinel的使用,也说明sentinel的使用,可以不依赖其他的外部条件,限流的工作实在客户端完成的;

上面的sentinel的控制台,只是做监控的展示,以及配置使用;

下一篇说下,规则数据的持久化配置;持久化配置理解了,就更加容易的理解这两句话的意思;

<project xmlns&#61;"http://maven.apache.org/POM/4.0.0" xmlns:xsi&#61;"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation&#61;"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0modelVersion><parent><groupId>org.springframework.bootgroupId><artifactId>spring-boot-starter-parentartifactId><version>2.2.4.RELEASEversion>parent><groupId>com.badgergroupId><artifactId>badger-spring-cloud-alibaba-sentinelartifactId><name>badger-spring-cloud-alibaba-sentinelname><description>服务熔断、限流description><properties><project.build.sourceEncoding>UTF-8project.build.sourceEncoding><java.version>1.8java.version><maven-jar-plugin.version>3.1.1maven-jar-plugin.version>properties><dependencies><dependency><groupId>org.springframework.bootgroupId><artifactId>spring-boot-starter-webartifactId>dependency><dependency><groupId>org.springframework.bootgroupId><artifactId>spring-boot-starter-actuatorartifactId>dependency><dependency><groupId>com.alibaba.cloudgroupId><artifactId>spring-cloud-starter-alibaba-sentinelartifactId>dependency>dependencies><dependencyManagement><dependencies><dependency><groupId>com.alibaba.cloudgroupId><artifactId>spring-cloud-alibaba-dependenciesartifactId><version>2.2.1.RELEASEversion><type>pomtype><scope>importscope>dependency>dependencies>dependencyManagement><build><plugins><plugin><groupId>org.springframework.bootgroupId><artifactId>spring-boot-maven-pluginartifactId>plugin>plugins><finalName>badger-spring-cloud-alibaba-sentinelfinalName>build>
project>

3.2、yaml配置文件如下&#xff0c;基础配置

server:port: 9000
spring:application:name: badger-spring-cloud-alibaba-sentinelcloud:sentinel: transport:dashboard: 127.0.0.1:8080port: 8719
management:endpoints:web:exposure:include: &#39;*&#39;

3.3、主启动类、以及业务类

&#64;SpringBootApplication
public class SentinelApplication {public static void main(String[] args) throws Exception {SpringApplication.run(SentinelApplication.class, args);}&#64;RestControllerpublic class DemoController {&#64;GetMapping(value &#61; "/hello/{name}")&#64;SentinelResource(value &#61; "sayHello")public String apiHello(&#64;PathVariable String name) {return "Hello, " &#43; name;}}
}

4、项目启动&#xff0c;测试使用


4.1、项目启动

sentinel在上面已经启动&#xff0c;默认端口为8080&#xff1b;

启动应用badger-spring-cloud-alibaba-sentinel&#xff0c;端口为9000

由于sentinel为懒加载&#xff0c;调用接口http://localhost:9000/hello/abc


簇点链路可以看到&#xff0c;应用正常被sentinel监控到。


4.2、添加限流规则

对url为/hello/{name}做限流处理&#xff0c;点击流控设置&#xff0c;设置QPS&#xff0c;阈值为1&#xff0c;表示1秒内&#xff0c;只能有1个请求通过

新增成功后&#xff0c;在流控规则里&#xff0c;有一条新增的记录&#xff0c;也可以直接在流控规则的菜单下&#xff0c;新增对应的流控规则&#xff1b;


4.3、测试限流规则

快速多次调用http://localhost:9000/hello/abc

可以看到页面显示默认的限流异常信息

Blocked by Sentinel (flow limiting)

说明应用的接口&#xff0c;被限流成功。


4.4、停止应用再启动

停止应用badger-spring-cloud-alibaba-sentinel后&#xff1b;

再启动&#xff1b;

再调用对应的url接口&#xff0c;会发现流控规则里&#xff0c;上次新增的流控规则&#xff0c;没有了&#xff0c;说明配置的规则数据&#xff0c;没有持久化&#xff1b;

下一篇说下&#xff0c;规则数据的持久化配置&#xff1b;

详细见github的文档[https://github.com/alibaba/Sentinel/wiki/%E4%BB%8B%E7%BB%8D](


推荐阅读
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • 云原生边缘计算之KubeEdge简介及功能特点
    本文介绍了云原生边缘计算中的KubeEdge系统,该系统是一个开源系统,用于将容器化应用程序编排功能扩展到Edge的主机。它基于Kubernetes构建,并为网络应用程序提供基础架构支持。同时,KubeEdge具有离线模式、基于Kubernetes的节点、群集、应用程序和设备管理、资源优化等特点。此外,KubeEdge还支持跨平台工作,在私有、公共和混合云中都可以运行。同时,KubeEdge还提供数据管理和数据分析管道引擎的支持。最后,本文还介绍了KubeEdge系统生成证书的方法。 ... [详细]
  • baresip android编译、运行教程1语音通话
    本文介绍了如何在安卓平台上编译和运行baresip android,包括下载相关的sdk和ndk,修改ndk路径和输出目录,以及创建一个c++的安卓工程并将目录考到cpp下。详细步骤可参考给出的链接和文档。 ... [详细]
  • 如何用UE4制作2D游戏文档——计算篇
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了如何用UE4制作2D游戏文档——计算篇相关的知识,希望对你有一定的参考价值。 ... [详细]
  • JavaScript设计模式之策略模式(Strategy Pattern)的优势及应用
    本文介绍了JavaScript设计模式之策略模式(Strategy Pattern)的定义和优势,策略模式可以避免代码中的多重判断条件,体现了开放-封闭原则。同时,策略模式的应用可以使系统的算法重复利用,避免复制粘贴。然而,策略模式也会增加策略类的数量,违反最少知识原则,需要了解各种策略类才能更好地应用于业务中。本文还以员工年终奖的计算为例,说明了策略模式的应用场景和实现方式。 ... [详细]
  • Java验证码——kaptcha的使用配置及样式
    本文介绍了如何使用kaptcha库来实现Java验证码的配置和样式设置,包括pom.xml的依赖配置和web.xml中servlet的配置。 ... [详细]
  • 闭包一直是Java社区中争论不断的话题,很多语言都支持闭包这个语言特性,闭包定义了一个依赖于外部环境的自由变量的函数,这个函数能够访问外部环境的变量。本文以JavaScript的一个闭包为例,介绍了闭包的定义和特性。 ... [详细]
  • flowable工作流 流程变量_信也科技工作流平台的技术实践
    1背景随着公司业务发展及内部业务流程诉求的增长,目前信息化系统不能够很好满足期望,主要体现如下:目前OA流程引擎无法满足企业特定业务流程需求,且移动端体 ... [详细]
  • 本文介绍了Android 7的学习笔记总结,包括最新的移动架构视频、大厂安卓面试真题和项目实战源码讲义。同时还分享了开源的完整内容,并提醒读者在使用FileProvider适配时要注意不同模块的AndroidManfiest.xml中配置的xml文件名必须不同,否则会出现问题。 ... [详细]
  • MateCloud 3.5.8 发布,基于 Spring Cloud Alibaba 的微服务框架
    基于SpringCloudAlibaba的微服务框架MateCloud3.5.8已经发布。此版本更新内容包括:功能升级针对MybatisPlus3.4.3新特性进行微调依赖升级升级至SpringCloud2020.0.3升级至Mybatis-Plus3.4.3详 ... [详细]
  • iOS超签签名服务器搭建及其优劣势
    本文介绍了搭建iOS超签签名服务器的原因和优势,包括不掉签、用户可以直接安装不需要信任、体验好等。同时也提到了超签的劣势,即一个证书只能安装100个,成本较高。文章还详细介绍了超签的实现原理,包括用户请求服务器安装mobileconfig文件、服务器调用苹果接口添加udid等步骤。最后,还提到了生成mobileconfig文件和导出AppleWorldwideDeveloperRelationsCertificationAuthority证书的方法。 ... [详细]
  • 目录实现效果:实现环境实现方法一:基本思路主要代码JavaScript代码总结方法二主要代码总结方法三基本思路主要代码JavaScriptHTML总结实 ... [详细]
  • 使用在线工具jsonschema2pojo根据json生成java对象
    本文介绍了使用在线工具jsonschema2pojo根据json生成java对象的方法。通过该工具,用户只需将json字符串复制到输入框中,即可自动将其转换成java对象。该工具还能解析列表式的json数据,并将嵌套在内层的对象也解析出来。本文以请求github的api为例,展示了使用该工具的步骤和效果。 ... [详细]
  • Google Play推出全新的应用内评价API,帮助开发者获取更多优质用户反馈。用户每天在Google Play上发表数百万条评论,这有助于开发者了解用户喜好和改进需求。开发者可以选择在适当的时间请求用户撰写评论,以获得全面而有用的反馈。全新应用内评价功能让用户无需返回应用详情页面即可发表评论,提升用户体验。 ... [详细]
  • Linux如何安装Mongodb的详细步骤和注意事项
    本文介绍了Linux如何安装Mongodb的详细步骤和注意事项,同时介绍了Mongodb的特点和优势。Mongodb是一个开源的数据库,适用于各种规模的企业和各类应用程序。它具有灵活的数据模式和高性能的数据读写操作,能够提高企业的敏捷性和可扩展性。文章还提供了Mongodb的下载安装包地址。 ... [详细]
author-avatar
洗吉精洗白菜_773
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有