微服务守护神-Sentinel-概念

news2024/11/15 14:50:51

引言

书接上篇 微服务应对雪崩的容错方案 ,大概知道微服务容错方案可以从隔离、超时、限流、熔断、降级这几方面入手。好了,理论了解了,那代码落地方案?这是后本篇的主角要登陆场:Sentinel,微服务的守护神。

何为Sentinel

官网:https://sentinelguard.io/zh-cn/index.html

Sentinel (分布式系统的流量防卫兵) 是阿里开源的一套用于服务容错的综合性解决方案。它以流量

为切入点, 从流量控制、熔断降级、系统负载保护等多个维度来保护服务的稳定性。

Sentinel 特征

  • 丰富的应用场景:Sentinel 承接了阿里巴巴近 10 年的双十一大促流量的核心场景, 例如秒杀(即突发流量控制在系统容量可以承受的范围)、消息削峰填谷、集群流量控制、实时熔断下游不可用应用等。

  • 完备的实时监控:Sentinel 提供了实时的监控功能。通过控制台可以看到接入应用的单台机器秒级数据, 甚至 500 台以下规模的集群的汇总运行情况。

  • 广泛的开源生态:Sentinel 提供开箱即用的与其它开源框架/库的整合模块, 例如与 SpringCloud、Dubbo、gRPC 的整合。只需要引入相应的依赖并进行简单的配置即可快速地接入Sentinel。

Sentinel分为两个部分:

  • 核心库(Java 客户端)不依赖任何框架/库,能够运行于所有 Java 运行时环境,同时对 Dubbo /Spring Cloud 等框架也有较好的支持。

  • 控制台(Dashboard)基于 Spring Boot 开发,打包后可以直接运行,不需要额外的 Tomcat 等应用容器。

项目集成Sentinel

还是沿用之前的商品与订单服务

微服务集成Sentinel非常简单, 只需要加入Sentinel的依赖即可,在shop-order-server项目的pom文件中添加如下依赖

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

修改shop-order-server项目中的配置文件application.yml,新增如下配置:

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

启动服务即可。

整合Sentinel控制台

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

1>下载jar包 Releases · alibaba/Sentinel · GitHub

2>命令启动控制台

# 直接使用jar命令启动项目(控制台本身是一个SpringBoot项目) 
java -Dserver.port=8080 -Dcsp.sentinel.dashboard.server=localhost:8080 -Dproject.name=sentinel-dashboard -jar sentinel-dashboard-1.8.0.jar
-Dserver.port=8080 #用于指定 Sentinel 控制台端口为 8080,如若8080端口冲突,可使用 -Dserver.port=新端口 进行设置。。
-Dcsp.sentinel.dashboard.server=localhost:8080 #指定控制台地址和端口,会自动向该地址发送心跳包。地址格式为:hostIp:port #配置成ocalhost:8080即监控自己
-Dproject.name=sentinel-dashboard #指定Sentinel控制台程序显示的名称

这里注意: 部分小伙伴启动会报错,大部分原因都是jdk版本问题

// 指定jdk版本
set Path=jdk8以上版本\bin

3>通过浏览器访问localhost:8080 进入控制台 ( 默认用户名密码是 sentinel/sentinel )

注意: 默认是没显示order-service的,需要访问几次接口,然后再刷新sentinel管控台才可以看到.

 

Sentinel规则种类

Sentinel主要提供了这五种的流量控制

Sentinel控制实现原理

 好,到这,Sentinel 基本概念介绍完成,下一篇就是sentinel流控操作了。

 看文字不过瘾可以切换视频版:SpringCloud Alibaba 极简入门

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

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

相关文章

Xylan-MAL|木聚糖-马来酰亚胺|木聚糖-聚乙二醇-马来酰亚胺|马来酰亚胺-PEG-木聚糖

Xylan-MAL|木聚糖-马来酰亚胺|木聚糖-聚乙二醇-马来酰亚胺|马来酰亚胺-PEG-木聚糖 中文名称&#xff1a;木聚糖-马来酰亚胺 英文名称&#xff1a;Xylan-MAL 别称&#xff1a;马来酰亚胺修饰木聚糖&#xff0c;马来酰亚胺-木聚糖 存储条件&#xff1a;-20C&#xff0c;避光&…

编程初学者应该先学C++、Java还是Python?

语言推荐&#xff1a; 第一大类语言包括Java、C、Python和C. 这类语言都是非常通用的语言,它们并不局限于特定的编程平台或用途。(无疑问&#xff0c;你应该熟悉这四种语言。) 第二大类语言包括Java、C#、PHP和Swift。 Java 和PHP是主要的Web开发语言。C# 是微软的编程语言&…

总结《你不知道的JavaScript》三卷小记

先讲一些废话 三本小黄书&#xff0c;工作日都抽出半小时来看看&#xff0c;三本书加来一共700多页的样子。我拖拖延延看了三个月&#xff0c;终于看完了。然后现在抽出时间随便写点&#xff0c;我只是挑一些自己想总结的&#xff0c;给自己一个名词概念&#xff0c;好了废话就…

FreeRTOS移植

FreeRTOS移植一、获取FreeRTOS源码1.1 官网下载1.2 源码路径二、移植2.1 工程内新建分支2.2 分支内添加文件FreeRTOS_COREFreeRTOS_PORTABLE添加完成2.3 添加 FreeRTOSConfig.h 文件2.4 添加 FreeRTOS 头文件路径三、举例3.1 包含头文件3.2 创建任务四、FreeRTOSConfig.h 附录一…

Redis——(7)redis作为mybatis缓存整合二级缓存的整合

1.作为mybits的缓存整合 1&#xff09;用户第一次访问的时候获取数据库的值&#xff0c;再次访问时直接从缓存中获取数据 2&#xff09;设置缓存过期时间 3)项目8080端口是对外端口&#xff08;向外部暴露的端口&#xff09;&#xff0c;区别于内部进程号,查内部端口用ps -ef|…

分布式环境下Spring Session Redis底层原理

1 自动装配 public class SessionAutoConfiguration {// SessionRepositoryFilterConfiguration用来配置核心的过滤器// 3 核心过滤器Configuration(proxyBeanMethods false)ConditionalOnWebApplication(type Type.SERVLET)Import({ ServletSessionRepositoryValidator.clas…

什么是代码签名证书?

使用代码签名证书&#xff0c;您可以保证签名者的身份和软件的完整性&#xff0c;这可以防止在下载和安装软件时出现警告。 代码签名证书是软件开发人员用来签署其软件、应用程序和驱动程序代码的数字证书。它使用公私密钥基础设施(PKI)将实体绑定到公钥和私钥。 申请代码签名…

SuperKnob超级旋钮

SuperKnob超级旋钮 2022年12月5日&#xff0c;今天总结下几个月前搞得小项目&#xff0c;好久没有写文总结了&#xff0c;有多少人不再写博客了呢&#xff1f;转眼疫情已三年&#xff0c;生活节奏太快了&#xff0c;认识的很多大佬他们的博客也不再更新了&#xff0c;都在努力…

Vue3 组件,一点也不难

Vue3 组件&#xff0c;一点也不难1.简介2.一个简单的 Vue 组件的实例3.局部组件4.Prop5.动态 Prop1.简介 组件是 Vue.js 最强大的功能之一。组件可以扩展 HTML 元素&#xff0c;封装可重用的代码。 组件系统让我们可以用独立可复用的小组件来构建大型应用&#xff0c;几乎任意…

jmeter压测mysql(保姆级教程)

准备工作&#xff08;下载mysql-connector&#xff09;&#xff1a; 打开mysql官网&#xff1a;MySQL 找到mysql connectors&#xff0c;选择操作系统独立版本&#xff0c;将下载jar包导入到jmeter的lib目录下。 参考文档&#xff1a;https://www.jb51.net/article/190860.h…

安装包UI美化之路-nsNiuniuSkin多语言配置

今天给大家带来的多语言配置功能&#xff0c;算是nsNiuniuSkin的一次质的提升&#xff0c;希望对大家有所帮助。 nsNiuniuSkin通过自研多语言配置引擎&#xff0c;让安装包的多语言配置不再复杂&#xff0c;直接设置语言翻译配置文件&#xff0c;即可实现安装包整体的多语言切…

一文读懂机智云物联网APP开发

本教程可用于C2 DevKit开发板套件全功能展示&#xff0c;用于对shineblink 的C2 DevKit开发套件全面学习使用&#xff0c;shineblink&及机智云技术交流群&#xff08;234976524&#xff09;。开发板相关的进阶教程及DIY应用将在后续持续更新。教程主要包含以下内容&#xf…

客户案例 | 举重若轻,低代码培育核心业务能力工坊

关键发现 用户痛点&#xff1a;传统套件式项目管理软件在中小企业或业务流程相对简单的企业中适配度低&#xff0c;不够灵活&#xff0c;性价比低&#xff0c;需要一套针对不同业务流程可以灵活配置的、轻量化的项目管理系统。 解决方案&#xff1a;基于西门子低代码开发平台…

六、Git远程仓库操作——创建远程库、推送拉取和克隆远程库等操作

1. 远程仓库介绍 前面的关于git的操作&#xff0c;都是基于本地仓库进行操作的。 但是如果我们想通过 Git 分享自己的代码或者与其他开发人员合作&#xff0c;这时我们就需要将数据放到一台其他开发人员能够连接的服务器上&#xff0c;这台服务器就是代码托管中心&#xff0c…

webpack热更新原理解析

热更新原理 1. webpack-dev-server启动本地服务 这里首先会启动webpack并生成compiler实例&#xff08;compiler实例通过各种事件钩子可以实现监听编译无效、编译结束等功能&#xff09;&#xff1b; 然后会通过express启动一个本地服务&#xff0c;用于服务浏览器对打包资源…

前端中的身份认证

一.Cookie 1.1.HTTP协议的无状态性 HTTP协议的无状态&#xff1a; 客户端的每次HTTP请求都是独立的&#xff0c;之间没有直接关系 服务器不会主动保留每次HTTP请求的状态 1.2.任何突破HTTP无状态的限制 发会员卡 注意&#xff1a; ​ 现实中,会员卡身份认证方式&#xff0c;在…

03 - 调试环境的搭建(Bochs)

---- 整理自狄泰软件唐佐林老师课程 1. Bochs&#xff08;另一款优秀的虚拟机软件&#xff09; 专业模拟x86架构的虚拟机 开源且高度可移植&#xff0c;由C编写完成 支持操作系统开发过程中的断点调试 通过简单配置就能运行绝大多数主流的操作系统 2. Bochs的安装与配置 下载…

[附源码]计算机毕业设计社区人员信息管理系统设计与实现Springboot程序

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

HRB系列直流隔离可调电源模块:用20K电位器和200K电位器区别

今天俞霖科技小编简谈如何合理地选用DC-DC模块电源&#xff0c;本文将从DC-DC模块电源开发设计的角度来简谈以上问题&#xff0c;以供广大技术设计人员参考。 DC-DC模块电源的众多优点是大家众所周知的&#xff0c;DC-DC模块电源以其体积小巧、性能卓异、使用方便的显著特点&a…

ArcGIS API For JavaScript(8)之使用动态图层dynamicLayers实现多图层合并截图

场景还原&#xff1a; 定位某个矢量图斑范围面&#xff0c;过滤展示该图斑&#xff0c;以图斑为中心&#xff0c;截图图斑周边并附带影像底图的截图。 在前端要实现地图截图&#xff0c;首先想到的是使用arcgis rest api中的export接口&#xff0c;这是没问题的&#xff0c;exp…