Sentinel 新版本发布,提升配置灵活性以及可观测配套

作者:屿山

基本介绍

Sentinel 是阿里巴巴集团开源的,面向分布式、多语言异构化服务架构的流量治理组件,承接了阿里巴巴近 15 年的双十一大促流量的核心场景,例如秒杀、冷启动、消息削峰填谷、集群流量控制、实时熔断下游不可用服务等,是保障微服务高可用的利器。开源以来也被众多企业广泛应用于生产实践。

图片

在功能上主要以流量为切入点,从流量路由、流量控制、流量整形、熔断降级、系统自适应过载保护、热点流量防护等多个维度来帮助开发者保障微服务的稳定性。同时 Sentinel 将会在未来的 2.0 系列版本中,进一步支持流量路由、流量染色与标透传、异常流量调度、预热调权等能力。在生态对接以及使用方式上也会更加贴近云原生。由流量防护升级为流量治理与自愈,扩大场景边界,从原来的只覆盖运行时稳定性,增加了变更态稳定性治理,覆盖服务全生命周期的稳定性,为业界提供统一的流量治理能力与标准化的治理方式。

版本预览

近期 Sentinel 1.8.7 正式发布,该版本基于 1.8.6 新增了多项特性和改进。主要新特性及改进如下:

  • 支持按照正则匹配资源名称,便于批量配置规则
  • 流量指标支持对接 Prometheus
  • 支持默认熔断规则
  • 重构 RateLimitController:提高准确性并支持 maxQps 阈值大于 1000

详情请参考 Release Notes [ 1] 。感谢为该版本付出的所有贡献者:@sczyh30, @wuwen5, @xiaozzzi, @EzrealOf, @wilsonwu, @kirklin, @garroshh, @JosephZhang3, @LiYangSir, @Yan1025, @wenshao, @pandaapo, @frank-zsy, @z521598, @LearningGp, @robberphex, @clara0, @karl-sy, @SaaiVenkat。

新特性介绍

资源名称支持正则匹配

Sentinel 一直以来支持资源名称的规则配置,但在实际的生产时间中,会存在对某一组的接口进行批量配置的需求,因此在 1.8.7 版本中,我们引入了资源名称支持正则匹配的新特性来支持更加灵活的资源匹配,提高配置效率。

下面是一个简单的示例(代码详见 sentinel-demo-basic 的 FlowQpsRegexDemo 类),首先我们构建正则匹配的流控规则。

//匹配以 /A/ 为前缀的资源名
private static final String KEY = "/A/.*";private static void initFlowQpsRule() {List<FlowRule> rules = new ArrayList<FlowRule>();FlowRule rule1 = new FlowRule();rule1.setResource(KEY);// set limit qps to 20rule1.setCount(20);rule1.setGrade(RuleConstant.FLOW_GRADE_QPS);rule1.setRegex(true);rule1.setLimitApp("default");rules.add(rule1);FlowRuleManager.loadRules(rules);
}

然后我们对 /A/a , /A/c,/B/a 三种资源分别发起请求,从输出中随机截取一部分可以看到 /A/a 资源以及 /A/c 资源匹配正则表达式,因此限流规则生效 pass qps 为 20,而 /B/a 资源由于不匹配正则表达式 pass qps 等于 total qps,符合预期,功能生效。

90 /A/a send qps is: 375
1703753361846, total:375, pass:20, block:355
90 /A/c send qps is: 370
1703753361846, total:370, pass:20, block:350
90 /B/a send qps is: 383
1703753361846, total:383, pass:383, block:089 /A/a send qps is: 366
1703753362850, total:366, pass:20, block:346
89 /A/c send qps is: 392
1703753362850, total:392, pass:20, block:372
89 /B/a send qps is: 357
1703753362850, total:357, pass:357, block:0

流量指标对接 Prometheus

在之前的版本中,Sentinel 的指标只能够通过日志或是控制台查看,但是存在诸多弊端,因此在 1.8.7 版本中我们对接了 Prometheus 这一云原生时代下流行的可观测组件,通过扩展的方式将指标暴露给 Prometheus。

下面是一个简单的示例(详见 sentinel-prometheus-metric-exporter 的 README.md 文件 )。

  1. 引入 Sentinel 插件
<dependency><groupId>com.alibaba.csp</groupId><artifactId>sentinel-prometheus-metric-exporter</artifactId><version>1.8.7</version>
</dependency>
  1. 引入 Prometheus 依赖
<dependency><groupId>io.prometheus</groupId><artifactId>simpleclient</artifactId><version>0.3.0</version>
</dependency><dependency><groupId>io.prometheus</groupId><artifactId>simpleclient_httpserver</artifactId><version>0.3.0</version>
</dependency>
  1. 在 Prometheus 端 prometheus.yml 中增加采集配置
scrape_configs:
- job_name: 'sentinelMetrics'static_configs:- targets: ['localhost:9092']# Note: the port needs to be the same as the value in the configuration (csp.sentinel.prometheus.fetch.port)

最终的效果如下:

图片

社区未来规划

在将来的一段时间内,1.8.x 系列和 2.0 系列将保持并行演进,欢迎社区积极参与到新版本的建设中。可以使用钉钉搜索群号加入 Sentinel 社区群,钉钉群号:21977771。

1.8.x 后续计划

1.8.x 版本自发布以来,持续深耕流量防护领域,后续还会在流量防护领域保持持续演进,并对一些基础结构、机制以及模型进行优化和重构,在提供更加完善的流量防护能力的同时,向 Sentinel 2.0 版本平稳过渡。

2.0 计划

Sentinel 2.0 品牌由流量防护升级为流量治理与自愈,扩大场景边界,为业界提供统一的流量治理能力与标准化的治理方式,同时更加贴近云原生。Sentinel 2.0 新的能力包括但不限于:流量路由、流量染色与标透传、异常流量调度、预热调权等,从原来的只覆盖运行时稳定性,增加了变更态稳定性治理,覆盖服务全生命周期的稳定性,为业界提供统一的流量治理能力与标准化的治理方式。

相关链接:

[1] Release Notes

https://github.com/alibaba/Sentinel/releases/tag/1.8.7

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

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

相关文章

高性能短URL服务实现

概述 大家应该在工作或者生活过程中也经常遇到段url&#xff0c; 类似于&#xff1a; https://v.douyin.com/62WmX3o/。那他的好处是什么呢&#xff1f;为什么使用短url? 短url的好处有 1、 短ur许多平台(微博)有字数限制,太长的链接加进去都没有办法写正文了2、 好看. 比起…

考研C语言刷题基础篇之分支循环结构基础(二)

目录 第一题分数求和 第二题&#xff1a;求10 个整数中最大值 第三题&#xff1a;在屏幕上输出9*9乘法口诀表 第四题&#xff1a;写一个代码&#xff1a;打印100~200之间的素数 第五题&#xff1a;求斐波那契数的第N个数 斐波那契数的概念&#xff1a;前两个数相加等于第三…

ChatGPT目前的AI一哥

ChatGPT和文心一言是两个不同的AI助手&#xff0c;各自有其独特的特点和应用场景。以下是对它们在智能回复、语言准确性和知识库丰富度等方面的简要比较&#xff1a; 智能回复&#xff1a;ChatGPT是由OpenAI开发的语言模型&#xff0c;具有强大的自然语言处理和生成能力&#x…

2023 工业 AR 关键词:纵深和开拓

2023 年&#xff0c;以虚实融合、工业元宇宙为代表的“新数字化”升级在工业制造领域达成共识。 ▲五部委联合印发元宇宙行动计划 通过发展元宇宙赋能新型工业化 而相对过去几年的行业渗透广、落地场景多样的 AR 业务拓展与合作&#xff0c;#纵深和#开拓&#xff0c;成为 2023…

80端口被占用解决思路

普及一个概念&#xff1a;80端口是 HTTP&#xff08;HyperText Transport Protocol)即超文本传输协议开放的&#xff0c;此为上网冲浪使用次数最多的协议&#xff0c;主要用于WWW&#xff08;World Wide Web&#xff09;即万维网传输信息的协议。 我们使用 http 域名访问时都会…

Vue3 ref与reactive

✨ 专栏介绍 在当今Web开发领域中&#xff0c;构建交互性强、可复用且易于维护的用户界面是至关重要的。而Vue.js作为一款现代化且流行的JavaScript框架&#xff0c;正是为了满足这些需求而诞生。它采用了MVVM架构模式&#xff0c;并通过数据驱动和组件化的方式&#xff0c;使…

pyspark之Structured Streaming file文件案例1

# generate_file.py # 生成数据 生成500个文件,每个文件1000条数据 # 生成数据格式&#xff1a;eventtime name province action ()时间 用户名 省份 动作) import os import time import shutil import time FIRST_NAME [Zhao, Qian, Sun, Li, Zhou, Wu, Zheng, Wang] SEC…

概念杂记--到底啥是啥?(数据库篇)

文章目录 1.聚集索引&#xff08;clustered index&#xff09;2.非聚集索引&#xff08;Non-clustered index&#xff09;3.聚集索引和非聚集索引区别&#xff1f;4.覆盖索引&#xff08;covering index&#xff09;5、复合索引 &#xff08;Composite Index&#xff09;6.索引…

【MySQL 流浪之旅】 第四讲 MySQL 逻辑备份

系列文章目录 【MySQL 流浪之旅】 第一讲 MySQL 安装【MySQL 流浪之旅】 第二讲 MySQL 基础操作【MySQL 流浪之旅】 第三讲 MySQL 基本工具 文章目录 系列文章目录 文章目录 一、什么是逻辑备份&#xff1f; 二、 mysqldump原理 三、mysqldump常用参数 四、mysqldump常见问题 …

HarmonyOS鸿蒙学习基础篇 - 基本语法概述

书接上文 HarmonyOS鸿蒙学习基础篇 - 运行第一个程序 Hello World 基本语法概述 打开 entry>src>main>ets>pages>index.ets 代码如下代码详细解释如下&#xff1a; Entry //Entry装饰的自定义组件将作为UI页面的入口。在单个UI页面中&#xff0c;最多可以使用…

融资项目——EasyExcel将Excel文件保存至数据库

上一篇博客已经基本介绍了EasyExcel的配置与基本使用方法。现在准备使用EasyExcel将Excel文件保存至数据库。 1.由于我们想每读取Excel中的N条记录后将这些记录全部写入数据库中。所以首先我们在Mybatis文件内先要写一个批量保存Excel文件中的记录的sql语句。 <insert id&q…

Dify学习笔记-应用发布(四)

1、发布为公开 Web 站点 使用 Dify 创建 AI 应用的一个好处在于&#xff0c;你可以在几分钟内就发布一个可供用户使用的 Web 应用&#xff0c;该应用将根据你的 Prompt 编排工作。 如果你使用的是自部署的开源版&#xff0c;该应用将运行在你的服务器上 如果你使用的是云服务&…

2024年跨境电商上半年有哪些营销节日?

2024年伊始&#xff0c;跨境电商开启新一轮的营销竞技&#xff0c;那么首先需要客户需求&#xff0c;节假日与用户需求息息相关&#xff0c;那么接下来小编为大家整理2024上半年海外都有哪些节日和假期&#xff1f;跨境卖家如何见针对营销日历选品&#xff0c;助力卖家把握2024…

Java框架篇面试题

&#x1f4d5;作者简介&#xff1a; 过去日记&#xff0c;致力于Java、GoLang,Rust等多种编程语言&#xff0c;热爱技术&#xff0c;喜欢游戏的博主。 &#x1f4d7;本文收录于java面试题系列&#xff0c;大家有兴趣的可以看一看 &#x1f4d8;相关专栏Rust初阶教程、go语言基…

flutter底层架构初探

本文出处&#xff1a;​​​​​​​​​​​​​Flutter 中文开发者网站 架构 embedder嵌入层 提供程序入口&#xff08;其他原生应用也采用此方式&#xff09;&#xff0c;程序由此和底层操作系统协调&#xff08;surface渲染、辅助功能和输入服务&#xff0c;管理事件循环…

书生·浦语大模型--第四节课笔记--XTuner大模型单卡低成本微调

文章目录 Finetune简介指令跟随微调增量预训练微调LoRA QLoRA XTuner介绍快速上手 8GB显卡玩转LLM动手实战环节 Finetune简介 增量预训练和指令跟随 通过指令微调获得instructed LLM 指令跟随微调 一问一答的方式进行 对话模板 计算损失 增量预训练微调 不需要问题只…

PostgreSQL 17新特性:PL/pgSQL支持数组%TYPE以及%ROWTYPE

正在开发中的 PostgreSQL 17 即将增加一个新功能&#xff1a;PL/pgSQL 支持定义伪类型 %TYPE以及%ROWTYPE 数组。 当我们使用 PL/pgSQL 编写存储过程或者函数时&#xff0c;可以定义不同类型的变量。例如&#xff1a; user_id integer; quantity numeric(5); url varchar; my…

微签电子印章系统赋能国泰基金办公自动化升级

近期&#xff0c;国泰基金引入微签电子印章系统&#xff0c;通过印章服务器自动化印章方案&#xff0c;成功搭建起电子印章自动化平台&#xff0c;主要解决了其账单数量过多、极度耗费人力的难题&#xff0c;缩短了印章发送流程和时间&#xff0c;提升了国泰基金的整体办公效率…

Prometheus 架构全面解析

在本指南中&#xff0c;我们将详细介绍 Prometheus 架构。 Prometheus 是一个用 Golang 编写的开源监控和告警系统&#xff0c;能够收集和处理来自各种目标的指标。您还可以查询、查看、分析指标&#xff0c;并根据阈值收到警报。 此外&#xff0c;在当今世界&#xff0c;可观…

Redis面试题26

Redis 的数据类型有哪些&#xff1f;它们分别适用于什么场景&#xff1f; 答&#xff1a;Redis 提供了多种数据类型&#xff0c;每种类型都有不同的特点和适用场景。以下是 Redis 支持的主要数据类型&#xff1a; 字符串&#xff08;String&#xff09;&#xff1a;最基本的数…