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

这篇具有很好参考价值的文章主要介绍了Sentinel 新版本发布,提升配置灵活性以及可观测配套。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

作者:屿山

基本介绍

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

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

在功能上主要以流量为切入点,从流量路由、流量控制、流量整形、熔断降级、系统自适应过载保护、热点流量防护等多个维度来帮助开发者保障微服务的稳定性。同时 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 20
    rule1.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:0

89 /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)

最终的效果如下:

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

社区未来规划

在将来的一段时间内,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文章来源地址https://www.toymoban.com/news/detail-820443.html

到了这里,关于Sentinel 新版本发布,提升配置灵活性以及可观测配套的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 鼎桥通信,拥抱基础创新的“高灵活性”时代

    作者 | 曾响铃 文 | 响铃说 伴随数智化转型成为时代变革大方向,一批走在时代前端的数智化转型企业应运而生,不断丰富5G、物联网等新兴技术的应用场景,构建万智互联的产业生态。作为国内通信领域的引领者,鼎桥通信技术有限公司(以下称鼎桥)深谙行业发展趋势,

    2023年04月08日
    浏览(32)
  • CSS Position与Float:探索布局的灵活性

    在网页设计中,我们常常需要对元素进行布局,并使其相互排列或定位。CSS提供了多种方式来实现这些目标,其中包括 position 和 float 属性。本文将深入讲解这两个属性以及它们在布局中的应用。 相对定位(Relative) 相对定位通过设置 position: relative; 属性来移动元素相对于其

    2024年02月10日
    浏览(39)
  • 趣味算法——链表:灵活性与高效性的完美结合

    链表(Linked List)是一种常见的基础数据结构,它通过“链接”的方式来存储数据,相当于是把数据分散存放在内存中,每一部分数据由一个存储元素和一个指针组成,其中,存储元素用于保存或者表示数据,指针则用来标记下一个存储元素的地址,这样,将分散的数据链接

    2024年02月09日
    浏览(41)
  • Go基础—反射,性能和灵活性的双刃剑

    现在的一些流行设计思想需要建立在反射基础上,如控制反转 (Inversion Of Control,IOC) 和依赖注入 (Dependency Injection,DI) 。 Go 语言中非常有名的 Web 框架 martini ( https://github.com/go-martini/martini )就是通过依赖注入技术进行中间件的实现,例如使用 martini 框架搭建的 http 的服

    2024年02月15日
    浏览(40)
  • VLAN——提高网络性能、安全性和灵活性的利器

    VLAN是Virtual Local Area Network的缩写,它是一种通过网络交换机虚拟划分局域网的技术。VLAN可以将一个物理局域网划分成多个逻辑上的虚拟局域网,各个虚拟局域网之间相互独立,彼此隔离,进而提高网络性能、灵活性和安全性。本文将为大家介绍VLAN的工作原理、优点及应用场

    2024年02月07日
    浏览(46)
  • 技术挑战:AI模型的可扩展性与灵活性

    在过去的几年里,人工智能(AI)已经成为了我们生活中不可或缺的一部分。从自动驾驶汽车到语音助手,AI技术的发展和应用不断地拓展。然而,随着AI技术的不断发展,我们面临着新的挑战:如何让AI模型具有更高的可扩展性和灵活性。 在本文中,我们将探讨AI模型的可扩展性

    2024年02月21日
    浏览(40)
  • C++ 多级继承与多重继承:代码组织与灵活性的平衡

    多级继承是一种面向对象编程(OOP)特性,允许一个类从多个基类继承属性和方法。它使代码更易于组织和维护,并促进代码重用。 在 C++ 中,使用 : 符号来指定继承关系。多级继承的语法如下: 在这个例子中, DerivedClass 从 BaseClass1 和 BaseClass2 继承。这意味着它将继承这两

    2024年04月25日
    浏览(34)
  • Animation Rigging 如何让你的Avatar人物更具灵活性

    Animation Rigging 是 Unity 官方发布的可以对 Avatar 人物骨骼进行约束的工具,已经有稳定的经过验证的 Vertified 包体,可以将其理解为一个 IK 工具,使用它可以让我们的人物动作表现更具灵活性。 Rig Builder 依赖 Animator 组件,所以将其与 Avatar 的 Animator 组件挂载于同一个物体上,

    2023年04月21日
    浏览(67)
  • 如何实现高可用性、灵活性、扩展性?了解 Kubernetes 优势

    Kubernetes是一种用于自动化部署、扩展和管理容器化应用程序的开源平台。它能够自动化地执行许多手动部署和管理容器的任务,包括容器的自动部署、负载均衡、自动伸缩、故障发现和自愈等。Kubernetes是一个强大、灵活且高可用的平台。 Kubernetes最初由谷歌开发,并于2014年

    2024年02月05日
    浏览(41)
  • PostgreSQL 中的 JSON:彻底改变数据库中的数据灵活性

    在这篇文章中,我们将介绍 PostgreSQL 对 JSON 对象的实现和处理方法。拥有一些 Linux、Postgres 和 JSON 方面的经验是必要的,因为我们不仅要介绍这些新功能,还要介绍如何实现它们。 本文使用在 Ubuntu 23.04 上运行的 PostgreSQL 16(开发版)编写 。首先,我将简要回顾一下 JSON 的背

    2024年01月19日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包