sentinel 端口_双剑合璧Nacos结合Sentinel实现流量安全控制(一):Sentinel核心库和控制台...

Alibaba Sentinel 是一款高性能且轻量级的流量控制、熔断降级解决方案。是面向分布式服务架构的高可用流量控制组件。

Sentinel 官网:https://sentinelguard.io/zh-cn/

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

一、Sentinel 是什么

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

Sentinel 具有以下特征:

  • 「丰富的应用场景」:

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

  • 「完备的实时监控」:

Sentinel 同时提供实时的监控功能。您可以在控制台中看到接入应用的单台机器秒级数据,甚至 500 台以下规模的集群的汇总运行情况。

  • 「广泛的开源生态」:

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

  • 「完善的 SPI 扩展点」:

Sentinel 提供简单易用、完善的 SPI 扩展接口。您可以通过实现扩展接口来快速地定制逻辑。例如定制规则管理、适配动态数据源等。

  • 「Sentinel 主要特征」

30920dcfd28b89e9bdff534fc61f9684.png
  • 「Sentinel 开源生态」

36cf51e3ffc044354c66e3f4fc6132f6.png

Sentinel 目前已经针对 Servlet、Dubbo、Spring Boot/Spring Cloud、gRPC 等进行了适配,用户只需引入相应依赖并进行简单配置即可非常方便地享受 Sentinel 的高可用流量防护能力。Sentinel 还为 Service Mesh 提供了集群流量防护的能力。未来 Sentinel 还会对更多常用框架进行适配。

Sentinel 分为两个部分:

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

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

二、Sentinel 的历史

2012 年,Sentinel 诞生,主要功能为入口流量控制。

2013-2017 年,Sentinel 在阿里巴巴集团内部迅速发展,成为基础技术模块,覆盖了所有的核心场景。Sentinel 也因此积累了大量的流量归整场景以及生产实践。

2018 年,Sentinel 开源,并持续演进。

2019 年,Sentinel 朝着多语言扩展的方向不断探索,推出 C++ 原生版本,同时针对 Service Mesh 场景也推出了 Envoy 集群流量控制支持,以解决 Service Mesh 架构下多语言限流的问题。

2020 年,推出 Sentinel Go 版本,继续朝着云原生方向演进。

三、Sentinel 核心

Sentinel 的使用可以分为两个部分:

核心库(Java 客户端):不依赖任何框架/库,能够运行于 Java 7 及以上的版本的运行时环境,同时对 Dubbo / Spring Cloud 等框架也有较好的支持(见 主流框架适配)。
控制台(Dashboard):控制台主要负责管理推送规则、监控、集群限流分配管理、机器发现等。

四、Sentinel 控制台

Sentinel 提供一个轻量级的开源控制台,它提供机器发现以及健康情况管理、监控(单机和集群),规则管理和推送的功能。

官网文档:https://github.com/alibaba/Sentinel/wiki/控制台

4.1 获取控制台

您可以从 release 页面 下载最新版本的控制台 jar 包。

您也可以从最新版本的源码自行构建 Sentinel 控制台:

下载 控制台 工程
使用以下命令将代码打包成一个 fat jar: mvn clean package

4.2 启动控制台

启动命令如下,本文使用的是目前最新 1.7.2 版本:

java -Dserver.port=8080 -Dcsp.sentinel.dashboard.server=localhost:8080 -Dproject.name=sentinel-dashboard -jar sentinel-dashboard-1.7.2.jar

**

「注意」:启动 Sentinel 控制台需要 JDK 版本为 1.8 及以上版本。

**

其中 -Dserver.port=8080 用于指定 Sentinel 控制台端口为 8080。

从 Sentinel 1.6.0 起,Sentinel 控制台引入基本的「登录」功能,默认用户名和密码都是 sentinel。可以参考 鉴权模块文档 配置用户名和密码。

注:若您的应用为 Spring Boot 或 Spring Cloud 应用,您可以通过 Spring 配置文件来指定配置,详情请参考 Spring Cloud Alibaba Sentinel 文档。

为了方便启动,可以编写一个启动脚本 run.bat:

java -Dserver.port=8080 -Dcsp.sentinel.dashboard.server=localhost:8080 -Dproject.name=sentinel-dashboard -jar sentinel-dashboard-1.7.2.jar
pause

4.3 访问

访问:http://localhost:8080/

3f27de7ed4c69abcc28198f6ab3e6ef5.png

输入默认用户名和密码 sentinel 点击登录。至此控制台就安装完成了。

7ba476558645cc1071e143f265021847.png


原作者:哈喽沃德先生,请关注 哈喽沃德先生公众号,如要获取**springcloud alibaba微服务架构视频教程**,请点加粗部分文字。

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

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

相关文章

程序员面试金典 - 面试题 16.10. 生存人数(自定义优先队列)

文章目录1. 题目2. 解题2.1 优先队列2.2 双指针1. 题目 给定N个人的出生年份和死亡年份,第i个人的出生年份为 birth[i],死亡年份为 death[i],实现一个方法以计算生存人数最多的年份。 你可以假设所有人都出生于1900年至2000年(含…

这篇CVPR文章真是妙蛙种子到了妙妙屋

文 | kid丶源 | 知乎Paper:CReST: A Class-Rebalancing Self-Training Framework for Imbalanced Semi-Supervised Learning这篇文章是在组会上听到的,觉得真的是太太妙了。本文考虑的是半监督场景下的长尾分布问题,即此时我们不仅没有足够的…

rss

rss页面的生成:请求rss.aspx,重定向到rss.ashx.由ForumRssHandler负责处理1。BuildFeed(),其中ForumRssWriter。在其中起了重要作用2. WriteFeed()。 订阅1先增加一个feedid 和对应的urlFeedReaderDataProvider.Instance().AddFeed();2.根据对应的url读出…

LeetCode 1394. 找出数组中的幸运数(map计数)

文章目录1. 题目2. 解题2.1 map计数2.2 Python3解1. 题目 在整数数组中,如果一个整数的出现频次和它的数值大小相等,我们就称这个整数为「幸运数」。 给你一个整数数组 arr,请你从中找出并返回一个幸运数。 如果数组中存在多个幸运数&…

阳光留在心底

很少在Blog上写自己的生活,很少在Blog上写自己的琐事,觉得没什么好写的。来这座城市8年了,从毕业到工作,所有的这3000多个日子过得很充实但是也很艰辛,我经常笑,因为没有什么能比笑容更能释放压力。  不知…

预训练模型的记忆机制解密!

文 | python近年来,大规模预训练语言模型给自然语言处理领域带来了翻天覆地的变化。一提到预训练模型为什么好,标准回答往往是:利用了无标注自监督学习数据,习得了语言学与语义知识,并有效迁移到下游任务中。然而&…

python中的列表和元组_百度资讯搜索_python中的列表和元组

腾讯网 11小时前# 元组(tuple)是 Python 中另一个重要的序列结构,和列表类似,元组也是由一系列按特定顺序排序的元素组成。元组是一个有序列表,序列中的每个元素都分配一个数字(...百度快照数据分析师攻略 2020年11月11日 17:50分别使用max(tuple)、min(tuple)方法可以返回元组…

LeetCode 1395. 统计作战单位数(蛮力法)

1. 题目 n 名士兵站成一排。每个士兵都有一个 独一无二 的评分 rating 。 每 3 个士兵可以组成一个作战单位,分组规则如下: 从队伍中选出下标分别为 i、j、k 的 3 名士兵,他们的评分分别为 rating[i]、rating[j]、rating[k]作战单位需满足…

站在2006的边缘

站在2006的边缘——代腾飞 2006年12月31日 于成都时光飞逝,中华元年2006年转眼来到了尽头明日清晨,冉冉升起的阳光将迎接新的一年的到来又将重新开始新的日月轮回站在这瞬间即逝的2006的边缘心潮难以宁静,我思索着、寻求着总想写下几句,也该…

谷歌Flan-T5诞生!1800种语言任务超大规模微调

编辑 | 泽南、小舟来源 | 机器之心不增加算力需求,谷歌总结的指令微调方法能让 8000 万到 5400 亿参数的模型都显著提升性能。人工智能一个重要的目标是开发泛化能力强的模型。在自然语言处理(NLP)领域中,预训练语言模型在这方面取…

fft的c语言和matlab对比_傅里叶级数(FS)、傅里叶变换(FT)快速傅里叶变换(FFT)及量子傅里叶变换(QFT)之间推导关系...

1 引言傅里叶级数 (Fourier Series, FS) 是《高等数学》中遇到的一个重要的级数,它可以将任意一个满足狄利克雷条件的函数为一系列三角级数的和。最早由法国数学家傅里叶在研究偏微分方程的边值问题时提出,极大地推动了偏微分方程理论的发展。根据欧拉公…

OraOLEDbpus.dll找不到指定的模块的解决办法

OraOLEDbpus.dll找不到指定的模块的解决办法 使用Oracle Provider for OLE DB 进行数据库连接的时候,报错::OraOLEDbpus.dll 找不到指定的模块在oracle的安装目录下却能找到OraOLEDbpus.dll,应该是其未能找到该路径,打开系统的环境…

LeetCode 1396. 设计地铁系统(map/unordered_map)

1. 题目 请你实现一个类 UndergroundSystem ,它支持以下 3 种方法: checkIn(int id, string stationName, int t) 编号为 id 的乘客在 t 时刻进入地铁站 stationName 。 一个乘客在同一时间只能在一个地铁站进入或者离开。 checkOut(int id, string st…

python中object是什么数据类型_自学Python2.1-基本数据类型-字符串str(object) 上

自学Python2.1-基本数据类型-字符串str(object) 上 字符串是 Python 中最常用的数据类型。我们可以使用引号(或")来创建字符串。 创建字符串很简单,只要为变量分配一个值即可。例如: var1 Hello World! var2 "Python Runoob" 1. Python…

.NET下使用DataAdapter保存数据时,如何生成command语句及使用事务

.NET下使用DataAdapter保存数据时,如何生成command语句及使用事务 在.NET下,运用DATASET对数据进行批量更新时,需要与 DataAdapter配合使用。DataAdapter数据适配器的作用是生成数据更新时所需的insert,delete,update等语句,这些语…

文档智能SOTA被刷爆,DocVQA榜单首次突破90大关

文档智能(DI, Document Intelligence)主要指对于网页、数字文档或扫描文档所包含的文本以及丰富的排版格式等信息,通过人工智能技术进行理解、分类、提取以及信息归纳的过程。文档智能技术广泛应用于金融、保险、能源、物流、医疗等行业&…

react 遍历对象_React 源码系列 | React Children 详解

本文基于 React V16.8.6,本文代码地址测试代码 源码讲解React 中一个元素可能有 0 个、1 个或者多个直接子元素,React 导出的 Children 中包含 5 个处理子元素的方法。map 类似 array.mapforEach 类似 array.forEachcount 类似 array.lengthtoArrayonlyR…

程序员面试金典 - 面试题 16.19. 水域大小(BFS/DFS)

1. 题目 你有一个用于表示一片土地的整数矩阵 land,该矩阵中每个点的值代表对应地点的海拔高度。 若值为0则表示水域。由垂直、水平或对角连接的水域为池塘。 池塘的大小是指相连接的水域的个数。 编写一个方法来计算矩阵中所有池塘的大小,返回值需要从…

自定义组件--创建mxml组件

创建简单的mxml组件 Example components/CountryComboBox.mxml <?xml version"1.0" encoding"utf-8"?> <mx:ComboBox xmlns:mx"http://www.adobe.com/2006/mxml"> <mx:dataProvider> <mx:String>United States</mx…

19位算法工程师总结:机器学习项目成功落地的三条秘诀

文 | 天于刀刀又是一年金九银十&#xff0c;前几天小编刀刀在一次电话面试过程中被HR 的一个问题问得差点闪了腰。当时情况是这样的&#xff0c;在流利地介绍完之前的几个项目后&#xff0c;招聘小姐姐打断了我后续的&#xff08;忽悠&#xff09;节奏&#xff0c;郑重其事地反…